我有以下代码
$(".reply").toggle ( function () { x1(); },function () { x2(); } );
我需要使用live,所以新元素也会被绑定.有一些语法可以做到吗?或者我是否需要在click事件上实现切换?
我正在使用jQuery 1.4.2.
解决方法
刚刚修改了fehay的答案,以便它不依赖于jQuery在toggle()期间不附加重复的事件处理程序
$(".reply").live('click',function () { var toggled = $(this).data('toggled'); $(this).data('toggled',!toggled); if (!toggled) { x1(); } else { x2(); } });
此外,请记住,由于事件委托的工作方式,live的选择器必须尽可能具体.每次点击文档时,jQuery都必须爬上树检查元素是否与选择器匹配.出于同样的原因,.delegate()的性能要高得多,因为你可以限制捕获区域.