$(this)没有“刷新”$(文档).on('click')

时间:2016-11-03 13:08:32

标签: javascript jquery

我正在使用JavaScript(或jQuery),我无法正确检索调用该事件的按钮的ID。

这是一个简化的例子: 我有2个具有相同类的按钮(该类用于监听器),ID为“button_1”和“button_2”,我将点击其中一个,启动事件并获取正确的ID。现在,我将点击另一个按钮,启动事件,我仍然得到第一个按钮的ID。

以下是代码:

$(document).on('click', '.list-button' , function(e){
    var target = e.target || e.srcElement;
    var button_id = target.id;
    alert(button_id);
}

或使用jQuery:

$(document).on('click', '.list-button' , function(e){
    var button_id = $(this).attr('id');
    alert(button_id);
}

两者都只输出第一个事件调用者。第二次,它将启动该功能,但它就像“$(this)”仍然是第一个事件调用者。

编辑:我简化了我的例子,警报工作正常,后来在代码中崩溃了。它与wordpress相关联,我不得不取消定义变量来纠正它。感谢您的帮助,即使我的请求异常无用,我想您帮我退后一步一步地阅读。

2 个答案:

答案 0 :(得分:1)

您的代码完美无缺。

$(document).on('click', '.list-button', function(e) {
  var button_id = $(this).attr('id');
  alert(button_id);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="list-button" id="button1">Button 1</button>
<button class="list-button" id="button2">Button 2</button>

请务必检查您的HTML是否正确。

答案 1 :(得分:1)

代码工作正常!

&#13;
&#13;
$(document).on('click', '.list-button', function(e) {
  var target = e.target || e.srcElement;
  var button_id = target.id;
  alert(button_id);
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="list-button" id="button_1">Button 1</button>
<button class="list-button" id="button_2">Button 2</button>
&#13;
&#13;
&#13;