-1

从 jQuery 1.8 开始,该.toggle()实用程序功能已被弃用,我正在查看 SO,但无济于事,无法找到一个快速片段来模仿其功能。我在这里查看了一个建议的解决方案,但我发现它太冗长了。

我想知道是否应该切换自定义类名并执行.on()/ .off(),或者是否应该跟踪布尔值?

在我看来,我认为我应该能够在一个.on()事件地图中完成所有这些......

有没有人在这里做过并且可以分享一个片段?

编辑

我必须说,当人们如此激进地否决问题时,这有点令人恼火。是的,SO上有一些类似的片段,但这里的问题是关于最小化代码。旧的 jQuery.toggle()是一个很好的简单方法,我只是在寻找一些关于最佳方法的指针。

我想出的是:任何人都知道如何避免使用全局变量来跟踪我的点击状态?

g.toggler = 0;
$(document).on({
    click : function(){
        g.toggler++;
        if(g.toggler%2==1){
            console.log('forth');
        } else {
            console.log('back');
        };
    }
});
4

1 回答 1

2

将切换值存储在元素的数据对象中。

http://jsfiddle.net/HNxFx/

$(document).on({
    click:function(){
        var toggle = $(this).data("toggler", !$(this).data("toggler")).data("toggler");
        if(toggle){
            console.log('forth');
        } else {
            console.log('back');
        };
    }
});
于 2013-01-23T23:02:46.350 回答