Jquery类选择器在多次尝试时运行多个事件

jquery class selector runs event more than ones on multiples tries

本文关键字:运行 事件 选择器 Jquery      更新时间:2023-09-26

让我们保存一下我有两个div,其中有锚标记,它们与

具有相同的类
<div id="div1">
<input type="hidden" value ="1"/>
<a class="class1">Click 1</a>
</div>
<div id="div2">
<input type="hidden" value ="2"/>
<a class="class1">Click 2</a>
</div>

现在我想有一个选择器侦听一个要点击的锚。

$('.class1').click(function(){
var hidVal = $(this).prev().val();
AlerthiddenVal(hidVal);
});

和一个简单的功能来提醒点击了什么

function AlerthiddenVal(val){
alert(val);
}

现在所有这些第一次都很好,第二次我运行它,它运行函数一次与第一次点击的值,然后另一次与正确的值,这继续下去,因为我点击更多的锚标签。谁能帮我解决这个问题,谢谢任何帮助。

当您多次绑定函数时会发生这种情况如果将此事件绑定到class1两次,则AlerthiddenVal函数将运行两次

解决方案是仅在加载文档时尝试绑定此事件一次或如果有必要在许多事件之后绑定它您需要在rebinding()之前调用unbind函数,例如:

$('.class1').unbind();
$('.class1').click(function(){
var hidVal = $(this).prev().val();
AlerthiddenVal(hidVal);
});

试试这个:

$('.class1').click(function(e){
    e.stopImmediatePropagation();
    var hidVal = $(this).prev().val();
    AlerthiddenVal(hidVal);
});

注意e.stopImmediatePropagation()。我有一个类似的问题,这解决了它。

$('.class1').click( function(){
  AlerthiddenVal( 
         $("input",$(this).parent() ).val()  
  );
});