jq2 里没有toggle方法了,有什么好的替代吗,还有事件解绑用哪个
官方没有说去掉 toggle()
和 toggleClass()
啊,只说了在 3.0 中不再使用 .toggleClass( [state ] )
这个签名(仅这个签名) 的函数。
就 toggle()
来说,主要是用于显示或隐藏,可以自己判断,调用 show()
或者 hide()
的
var $node = ...;
if ($node.is(":hidden")) {
$node.show();
} else {
$node.hide();
}
题主说的应该是jq1.9里移除的这个toggle(fn1,fn2[,fn3,...])
,我觉得可以借鉴上面答主的思路,设置个标志位,然后在click
事件处理里用if...else
判断下就可以了。
至于事件解绑,一种是用one()
绑定,这样事件触发一次之后可以自动解绑;还有一种是绑定时为事件加上命名空间,比如
$('#btn').on('click.test',function(){
//todo...
});
这样就可以直接用
$('#btn').off('.test');
来解绑了。
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
用hasClass/addClass/removeClass或attr标记状态实现toggle切换