代码为每个选项卡生成 HTML + JS。现在在每个选项卡上,我有 2 个使用 PHP 在 HTML 中生成的按钮。它还使用 JQuery 为每个按钮生成 Javascript onclick 事件。
这是生成的每个按钮的 jquery click 事件:
<script type="text/javascript">
$(function() {
$(document).on("click", ".mybutton", function(e) {
e.preventDefault();
alert($(this).attr('whoami'));
return false;
});
});
</script>'
现在由 html 生成的两个按钮具有以下结构:
<button type="button" class="mybutton" whoami="button_1">First Button</button>
<button type="button" class="mybutton" whoami="button_2">Second Button</button>
现在 html 和 JS 都生成正常我看到两个按钮都很好,没有 JS 错误什么都没有。我可以单击这两个按钮,但会发生以下情况:
当我单击第一个按钮时,它会发出以下警报:
button_1
button_2
两个按钮单击都会执行,因为它们具有相同的类名。如何防止两个按钮都被执行?我只需要执行单击的按钮,而不是全部。
我尝试添加e.stopImmediatePropagation()这就是发生的事情:
当我点击第一个按钮时,我得到了正确的警报,它只执行 button_1 点击,但是当我点击第二个按钮时,它只执行 button_1 点击事件而不是 button_2。
请帮忙。
注意: 我认为它同时执行的原因是因为有 2 个 javascript 部分附加到 html 并且两个脚本都有.button上的单击事件,但我无法更改此代码,我需要以某种方式确保只有单击的按钮被执行。