在我的程序中,我正在尝试修改jQuery元素的click事件,我注意到它实际上是 添加 一个新事件。所以如果我这样做
$myelem = $('.nav-item');
$myelem.click(function(){
console.log("foo");
});
$myelem.click(function(){
console.log("bar");
});
然后单击类nav-item
日志的元素
foo
巴
如何重写这个以便第二个定义覆盖之前的点击事件?
答案 0 :(得分:3)
如果您无法先修改,则可以使用off()进行修改,因为它比 .unbind() 更为可取:
$myelem = $('.nav-item');
$myelem.click(function(){
console.log("foo");
});
$myelem.off('click').on('click',function(){
console.log("bar");
});
正如@CMedina建议的那样,您还应该使用$myelem.on("click",function(){....})
,因为.click()
已经在后台呼叫.on('click',function..);
检查以下代码段
$myelem = $('.nav-item');
$myelem.click(function() {
console.log("foo");
});
$myelem.off('click').on('click', function() {
console.log("bar");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="nav-item">Navigation</div>