我正在使用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相关联,我不得不取消定义变量来纠正它。感谢您的帮助,即使我的请求异常无用,我想您帮我退后一步一步地阅读。
答案 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)
代码工作正常!
$(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;