$(this) not "refreshing"(文档).在美元(& # 39;点击# 39;)

$(this) not "refreshing" with $(document).on('click')

本文关键字:quot 美元 点击 this not refreshing 文档      更新时间:2023-09-26

我正在使用JavaScript(或jQuery),我不能正确检索调用事件的按钮的id。

下面是一个简化的例子:我有两个具有相同类(类用于侦听器)的按钮,id为"button_1"answers"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,我不得不取消定义变量来纠正它。谢谢你的帮助,即使我的请求是非常无用的,我想是你帮助我退一步,一步一步地阅读。

你的代码运行得很好。

$(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>

代码运行正常!

$(document).on('click', '.list-button', function(e) {
  var target = e.target || e.srcElement;
  var button_id = target.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="button_1">Button 1</button>
<button class="list-button" id="button_2">Button 2</button>