jQuery中live()的多次重复绑定

作者:norion时间:2012年5月14日评论次数:0 条

最近用jQuery写一个删除功能,用了jQuery的live()方法,但是出现重复绑定事件的情况,如,当点击一个按钮时,此按钮所绑定的事件会并执行n遍。

我的js是这样写的:

var _table = jQuery('#table');
var _mun   = _table.find('tr').size()-1;
jQuery('.deleteWorkFlow').live('click',function(){
	var _mun = _table.find('tr').size()-1;
	if( _mun > 2 ){
		jQuery("#tbody tr:last").remove();
	}else{
		return false;
	}
});

本来理想的效果应该,当_mun>2的情况,#tbody的最后一个tr会被删除,但是当我点击deleteWorkFlow的时候,就把所有的tr删除,出现重复执行的情况。遇到这种情况反复了看了好几遍代码都找不到原因,百度上找了好久,可能是live()的问题,终于让我找到jQuery的die()方法。

die()是jQuery1.3之后才出现的方法,与live()正好完全相反,有兴趣的可以查找jQuery的api,查看具体的介绍。于是我就在live()前加上die()问题就解决了:

var _table = jQuery('#table');
var _mun   = _table.find('tr').size()-1;
jQuery('.deleteWorkFlow').die().live('click',function(){
	var _mun = _table.find('tr').size()-1;
	if( _mun > 2 ){
		jQuery("#tbody tr:last").remove();
	}else{
		return false;
	}
});

标签:

上一篇: wordpress标题截取的小技巧

下一篇:Godaddy域名DNS切换记

相关文章

评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注