javascript-如何使用事件冒泡取消
作者:互联网
我到处都在寻找有关如何停止事件冒泡的代码,并且我在Quirksmode网站上找到了一个代码,它是:
function doSomething(e){
if(!e) var e = window.event;
e.cancelBubble = true;
if(e.stopPropagation) e.stopPropagation();
}
但是我不知道如何以及在哪里使用它.
“ e”参数用作什么(或应作为“ e”传递)?
是否在事件处理程序代码中调用此函数?
…等等?
我需要帮助,有人可以给我一些提示吗?
基本上,我有4个元素具有名为“ updateAvailableAttributes()”的“ onchange”处理程序,如下所示:
<select id="deliveryMethod" name="deliveryMethod" onchange="updateAvailableAttributes();"></select>
<select id="formatMethod" name="formatMethod" onchange="updateAvailableAttributes();"></select>
<select id="yearsMethod" name="yearsMethod" onchange="updateAvailableAttributes();"></select>
<select id="updateMethod" name="updateMethod" onchange="updateAvailableAttributes();"></select>
这是updateAvailableAttributes()脚本:
function updateAvailableAttributes() {
var form = document.forms["orderDefinition"];
form.elements["formChangeRequest"].value = "true";
$.ajax({
type: "POST",
url: "ajax/possibleValues.html",
data: $("form#orderDefinition").serialize(),
success: function(response){
$('#usercontent .sleeve .toprow').html(response);
applyValidation();
radioButtonHighlightSelection();
},
error: function(response, ioArgs) {
if (response.status == 601) {
sessionTimedOut();
}
}
});
// Display a "please wait" message
$("#waitingMsgOverlay, #waitingMsgBox, #waitingMsg, #waitingMsgParag").ajaxStart(function(){
var map = document.getElementById("OrderMap");
map.disableApplication();
$(this).show();
radioButtonHighlightSelection();
}).ajaxStop(function(){
var map = document.getElementById("OrderMap");
map.enableApplication();
$(this).hide();
$("#toolpanel").height($("#orderMap").height());
radioButtonHighlightSelection();
});}
我的问题是,如何将’doSomething(e)’与’onchange’事件处理程序中已经包含的’updateAvailableAttributes()’合并?
先感谢您.
解决方法:
e是事件.例如,如果您在另一个div内有一个div,并且它们两个都有一个名为doSomething的js单击处理程序.因此在onclick属性中使用onclick =“ doSomething(event);”如果单击内部div外部,现在将无法处理
标签:event-bubbling,events,javascript 来源: https://codeday.me/bug/20191209/2096783.html