2017-08-09 145 views
2

我有這個按鈕:爲什麼這個inline 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屬性我叫兩個功能ExecuteCommandstopPropagation

執行命令工作正常,但在我看來,stopPropagation方法沒有被觸發,因爲該按鈕下的元素會受到影響。

任何想法爲什麼stopPropagation方法不起作用?

+0

我想'stopPropagation()'屬於jQuery的。相反,只需使用'return false;'它應該訣竅 – ihpar

+0

你需要問自己這裏的問題是在這種情況下'事件'是什麼? – Liam

回答

1

有可能沒有event可在瀏覽器中內嵌處理器使用的是

,如果你使用

<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 
    }); 
}); 

你將有一個更簡單的時間想要停止處理您可以嘗試的事件的圖像

$(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; 
    }); 
}); 

或找到它的處理和編輯處理

+0

我嘗試你的例子,但它劑量工作 – Michael

+1

「不行」是什麼意思?控制檯中的錯誤?沒有?改變它返回false,它確實有效?隨着你給的代碼我不能告訴 – mplungjan

+0

我添加了返回false的地方你的意見,我沒有在控制檯中的任何錯誤,並在按鈕下的元素是影響。 – Michael