Hogy kell ezt a jQuery kódot függvénnyé alakítani?
Sziasztok.
Hogy kell ezt a jQuery kódot függvénnyé alakítani?
$('.submenu').click( function(){
if($(this).parent().hasClass('active')) {
$(this).parent().removeClass('active');
}
else {
$(this).parent().addClass('active');
}
});
$('#menu-button').click( function(){
if($('#menu').hasClass('active')) {
$('#menu').removeClass('active');
}
else {
$('#menu').addClass('active');
}
})
Én így csináltam:
function snOnClickClass(onClick, className, parent = false) {
$(onClick).click( function(){
parent = (!parent) ? $(this).parent() : $(parent);
if(parent.hasClass(className)) {
parent.removeClass(className);
}
else {
parent.addClass(className);
}
});
}
snOnClickClass('.submenu', 'active');
snOnClickClass('#menu-button', 'active', '#menu');
De nem úgy működik, ahogy akarom. Mindig csak az kap active class-t, amelyikre legelőször kattintottam. Miért? Vagy van valami normálisabb megoldás, amivel "szebbé" alakíthatom a fenti kódot?
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Én ilyesmit csinálnék:
Azt akarom elérni, hogy ha a <span class="submenu></span>-re kattintok, akkor a szülőnek (<li>) adjon egy class-t.
Ha meg a <span id="menu-button"></span>-ra, akkor a <div id="menu"></div>-nek adjon egy class-t.
<span id="menu-button"></span>
<div id="menu">
<ul>
<li><a href=""><span class="submenu></span>Menüpont</a></li>
</ul>
</div>
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Egyébként addClass és removeClass helyett egyszerűen csak:
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!