我到处寻找有关如何阻止事件冒泡的代码,我在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)'与'updateAvailableAttributes()'合并到'onchange'事件处理程序中?
提前谢谢。
答案 0 :(得分:2)
整个doSomething是事件处理程序本身。您只需完全按照没有参数的情况注册事件。 “e”参数由JavaScript运行时本身提供。
答案 1 :(得分:1)
e是事件。例如,如果你在另一个div中有一个div,并且它们都有一个名为doSomething的js点击处理程序。所以在onclick属性中使用onclick =“doSomething(event);”如果你单击内部div外部将不会处理它
答案 2 :(得分:0)
在DOM模型中,存在与元素相关联的各种事件,例如onclick
。如果要处理任何事件,请将事件侦听器附加到元素。例如element.addEventListner(event,yourfunction,bubble)
。