为什么这个内联stopPropagation方法调用不起作用?

时间:2017-08-09 12:24:13

标签: javascript jquery stoppropagation

我有这个按钮:

<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

执行命令工作正常,但在我看来,stopPropagation方法没有被触发,因为按钮下的元素受到影响。

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

1 个答案:

答案 0 :(得分:1)

您正在使用的浏览器中的内联处理程序可能没有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; 
  });
});

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