我到处找关于如何阻止事件冒泡出现一个代码,我发现一个从怪异模式的网站,这是这样的:如何使用事件冒泡取消
function doSomething(e){
if(!e) var e = window.event;
e.cancelBubble = true;
if(e.stopPropagation) e.stopPropagation();
}
但我不知道如何以及在哪里使用它。 什么是'e'参数用作(或者应该作为'e'传递什么)? 是否在事件处理程序代码中调用此函数? ...等等?
我需要一些帮助,请有人给我一些提示?
基本上,我有4个元素有一个名为 'updateAvailableAttributes()' 的 '平变化' 的处理程序,就像这样:
<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'事件处理函数中?
预先感谢您。
@Vinay B R:谢谢你的回应。我编辑了我的问题,使其更清晰。 – Shaoz 2010-09-08 14:12:06
我还是新来的JavaScript,所以事件冒泡问题仍然有点令我困惑。我只想将doSomthing()与我已经在'onchange'处理函数中的函数合并。但我该怎么做? – Shaoz 2010-09-08 14:22:28
如果您可以将您现有的脚本粘贴到此处,我可以为您编辑 – 2010-09-08 15:07:33