简体   繁体   中英

Best alternative for jQuery toggle() method?

jQuery deprecated toggle() method. It was way to easy to toggle classes, While searching stackoverflow I found various other methods to accomplish the same task( Alternative to jQuery's .toggle() method that supports eventData? ). Which jQuery snippet should be ideal to switch classes for this markup?

Thanks

Markup:

<a href="#">Toggle Class</a>
<div class="a"></div>

CSS:

.a{
background: #f2f2f2;
}
.b{
background: #ededed;
}

In this case, simply use .toggleClass() .

$("a").click(function(){
    $("div").toggleClass("a b");
});

http://api.jquery.com/toggleClass/

toggleClass() seems to be what you want/need.

If you have only 1 class to toggle (enabling and removing it), below should work fine:

$("a").click(function(){
        $(this).toggleClass('class1', '');
});

toggle() function used to toggle view. Which has performance issues.(will recommend not to use)

toggleClass() is used to toggle class.

case:1

<div id='mydiv' class="class1"></div>

$('#mydiv').toggleClass('class1 class2');

output: <div id='mydiv' class="class2"></div>

case:2

<div id='mydiv' class="class2"></div>

$('#mydiv').toggleClass('class1 class2');

output: <div id='mydiv' class="class1"></div>

case:3

<div id='mydiv' class="class1 class2 class3"></div>

$('#mydiv').toggleClass('class1 class2');

output: <div id='mydiv' class="class3"></div>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM