jquery toggle
简而言之,您可以将Live和Toggle一起使用,但不必编码最佳实践。 jQuery .Live()和jQuery .Toggle()都会自动为元素创建自己的绑定事件。 当它们一起使用时,这会引起问题,因为您需要单击两次按钮才能使Toggle起作用。
解决此问题的一种方法是将Live('click')事件与Toggle事件一起使用,可以将.Trigger('click')命令添加到函数调用的末尾,如下所示:
// Add sort functions on dynamic elements inserted into DOM
$('.sort').live('click',JQUERY4U.sortClickListener);
[code lang="js"]
//function inside JQUERY4U namespace
sortClickListener: function(){
// Find second class name
var button = $(this).attr('class').split(' ');
// Sort table
$(this).toggle(function() {
$('.item').tsort('.'+button[1],{order:'desc'});
}, function() {
$('.item').tsort('.'+button[1]);
}).trigger('click'); /*force the button to work with 1 click*/
},
另一种方法是使用.Data方法,但这将是过大的手段,也是解决难题的漫长方法。
$(".reply").live('click', function () {
var toggled = $(this).data('toggled');
$(this).data('toggled', !toggled);
if (!toggled) {
x1();
}
else {
x2();
}
});
jquery toggle