我有这个按钮:

<button
    type="button"
    onclick='parent.parent.ExecuteCommand(14);event.stopPropagation()'
    class="button_air-medium">
    <img
        id="selectMode"
        class="shortcutContant"
        src="../stdicons/icon_select.gif">
</button>


如您所见,在onclick属性中,我调用了2个函数ExecuteCommandstopPropagation

execute命令工作正常,但在我看来stopPropagation方法未触发,因为按钮下的元素受到了影响。

知道为什么stopPropagation方法不起作用?

最佳答案

您正在使用的浏览器中的内联处理程序可能没有event可用

如果这样做的话,您会更轻松

$(function() {
  $(".button_air-medium").on("click",function(e) {
    e.stopPropagation();
    parent.parent.ExecuteCommand($(this).data("commandnumber"))
    // or return false here
  });
});


使用

<button type="button" data-commandnumber="14"
class="button_air-medium"><img id="selectMode" class="shortcutContant"
src="../stdicons/icon_select.gif"></button>


如果要停止图像处理事件,可以尝试

$(function() {
  $(".button_air-medium").on("click",function(e) {
    e.stopPropagation();
    parent.parent.ExecuteCommand($(this).data("commandnumber"))
    // or return false here
  });
  $(".button_air-medium > img").on("click",function(e) {
    $(this).parent().click();
    return false;
  });
});


或找到它的处理位置并编辑该处理程序

关于javascript - 为什么此内联stopPropagation方法调用不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45590646/

10-12 17:28