Jquery 在firefox和IE上使用event.stopPropagation()
为什么这段代码不适用于Firefox和IE? 镀铬就可以了Jquery 在firefox和IE上使用event.stopPropagation(),jquery,internet-explorer,firefox,stoppropagation,Jquery,Internet Explorer,Firefox,Stoppropagation,为什么这段代码不适用于Firefox和IE? 镀铬就可以了 $(document).click(function(e) { if ($(".contentIconDesk").hasClass('markIconDesk')) { $(".contentIconDesk").removeClass('markIconDesk'); wndSelected = ""; } }); fun
$(document).click(function(e) {
if ($(".contentIconDesk").hasClass('markIconDesk')) {
$(".contentIconDesk").removeClass('markIconDesk');
wndSelected = "";
}
});
function markMe(icon, wnd) {
event.stopPropagation();
if ($('#'+icon).hasClass('markIconDesk')) {
$(".contentIconDesk").removeClass('markIconDesk');
wndSelected = "";
} else {
$(".contentIconDesk").removeClass('markIconDesk');
$('#'+icon).addClass('markIconDesk');
wndSelected = wnd;
}
};
函数MarkMe()在my HTML中某个div的事件onClick()
中调用code>。问题在于事件。stopPropagation()
。当我单击添加类时,浏览器捕捉到单击$(文档)
如果有一个好的建议而不是使用上面的代码,那就太好了。因为事件在这段代码中没有定义:
event.stopPropagation();
因为事件
在此代码段中未定义:
event.stopPropagation();
您需要将事件作为MarkMe
函数的参数传递
function markMe(icon, wnd, event) {
event.stopPropagation();
//...
}
那么当你调用它时,它应该是这样的:
$('#myDiv').click(function(e) {
//...
MarkMe(icon, wnd, e);
});
您需要将事件作为MarkMe
函数的参数传递
function markMe(icon, wnd, event) {
event.stopPropagation();
//...
}
那么当你调用它时,它应该是这样的:
$('#myDiv').click(function(e) {
//...
MarkMe(icon, wnd, e);
});
你可以试试这个。对于HTML中的div,修改如下:
<div id="something1" onclick="markMe('icon1', 'wnd1', event)">
<div id="something2" onclick="markMe('icon2', 'wnd2', event)">
<div id="something3" onclick="markMe('icon3', 'wnd3', event)">
你可以试试这个。对于HTML中的div,修改如下:
<div id="something1" onclick="markMe('icon1', 'wnd1', event)">
<div id="something2" onclick="markMe('icon2', 'wnd2', event)">
<div id="something3" onclick="markMe('icon3', 'wnd3', event)">
IE在其DOM中不支持stopPropagation方法。您可以使用event.cancelBubble=true(我的意思是,event对象的cancelBubble属性)。查看一下IE在其DOM中不支持stopPropagation方法。您可以使用event.cancelBubble=true(我的意思是,event对象的cancelBubble属性)。查看发布您正在使用的div的HTML。您可以使用event.target获取单击事件的发起人,例如参见if($(e.target).is(“div”))return代码>在文档中单击绑定。为什么要使用jQuery和onclick
事件处理程序?谢谢@Walid。您的提示非常有用。@DavidThomas我没有找到一种方法来获取如下参数:onclick=“markMe($(this.attr('id'),'stores');”
使用jQuery函数:$(“#icon_1”)。单击()。对不起,我是js和jQuery的新手。但是我正在努力研究它。发布你正在使用的div的HTML。你可以使用event.target获得click事件的发起人,例如参见if($(e.target).is(“div”))return代码>在文档中单击绑定。为什么要使用jQuery和onclick
事件处理程序?谢谢@Walid。您的提示非常有用。@DavidThomas我没有找到一种方法来获取如下参数:onclick=“markMe($(this.attr('id'),'stores');”
使用jQuery函数:$(“#icon_1”)。单击()。对不起,我是js和jQuery的新手。“但我正在努力研究它,”戴维托马斯说,“那是行不通的。”。在这个函数中甚至没有意义。它属于单击处理程序(如果在任何位置):)@戴维托马斯-这行不通。在这个函数中甚至没有意义。它属于单击处理程序(如果在任何位置):)是的,但是使用$('#myDiv')。单击(函数(e),我如何知道用户单击了哪个图标?是的,但是使用$('#myDiv')。单击(函数(e),我如何知道用户单击了哪个图标?