有什么好的方法可以替代jquery toggle()函数?

jquery的toggle()方法在1.9以后被删除了,但个人觉得是个挺实用的函数啊,为什么就被抛弃了呢。。。有什么好的替代方法吗?

阅读 11.7k
4 个回答

其实就是和全选和反选一个道理嘛

取当前的反值 然后判断 去执行相应的函数

比如

var a=true;
var dosth=function(){
    a=!a;
    if(a){
        //do sth
    }else{
        //do sth
    }
}
$('#example').click(function(){$("#example2").toggle();})
//改为
$('#example').click(function(){
    if($("#example2").is(":hidden")){
        $("#example2").show();
        
    }else{
        $("#example2").hide();
        
    }
})

其实可以直接用原生方法。
document.body.classList.toggle("classname")

非常赞同@adamchuan 的原生做法。不过如果你非想要其他手工做法,那试试这个也成:

//element.className = 'testa testc';

var toggle = function(element, clz) {
    var reg = new RegExp(clz);
    if (element.className.match(reg)) {
        element.className = element.className.replace(reg, '');
        return element;
    }
    element.className += ' ' + clz;
    return element;
};

console.log(toggle(document.body, 'testd').className); //testa testc testd
console.log(toggle(document.body, 'testc').className); //testa