我點擊頂部<tr>
發生事件,然後點擊tr > td > button
也發生事件。當我點擊tr > td > button
時,相關的onclick()
函數正在運行,但與<tr>
相關的功能也在之前運行。如何停止運行下一個功能?
像:
<tr onclick="run_tr();">
<td><input type="button" onclick="run_td();" /></td>
</tr>
我怎麼能停止自動調用通過單擊按鈕下一個電話?
我點擊頂部<tr>
發生事件,然後點擊tr > td > button
也發生事件。當我點擊tr > td > button
時,相關的onclick()
函數正在運行,但與<tr>
相關的功能也在之前運行。如何停止運行下一個功能?
像:
<tr onclick="run_tr();">
<td><input type="button" onclick="run_td();" /></td>
</tr>
我怎麼能停止自動調用通過單擊按鈕下一個電話?
在按鈕onclick
功能,你需要停止事件冒泡:
event.stopPropagation();
按照與您的代碼:
HTML:
<input type="button" onclick="run_td(event);" />
JS:
function run_td(event) {
if (event.stopPropagation) {
event.stopPropagation();
}
event.cancelBubble = true;
// ... rest of your code.
}
不,這是錯誤的方法......這將例如阻止瀏覽器跟蹤鏈接,但不會停止事件傳播。 –
我已經更新了我的答案 – antyrat
仍然,'preventDefault()'與問題無關...... –
您必須使用方法e.stopPropagation()
來停止事件的傳播。欲瞭解更多信息,請訪問此鏈接:http://www.quirksmode.org/js/events_order.html#link9
我不明白你爲什麼不能使用推薦的方法,這裏有一個例子:的
<div onclick="alert('div click called');">
Click here to see div onclick
<button onclick="
(event.stopPropagation && event.stopPropagation());
event.cancelBubble = true;
alert('stopped click');
">Button click but no div click</button>
</div>
可能重複[禁用父的onclick事件元素](http://stackoverflow.com/questions/5445719/disable-the-onclick-event-of-a-parent-element) –
你應該避免內聯腳本 – Joseph