将jQuery .Toggle()与Live或Bind一起使用

简而言之,您可以将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();
    }
});

From: https://www.sitepoint.com/jquery-toggle-live-bind/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值