jquery - 在 Firefox 和 IE 上使用 event.stopPropagation()

标签 jquery internet-explorer firefox stoppropagation

为什么此代码不适用于 Firefox 和 IE? 在 Chrome 上没问题。

$(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(); 在我的 HTML 中某个 div 的 onClick() 事件中被调用。问题出在 event.stopPropagation() 上。当我单击添加类时,浏览器捕获 $(document) 上的单击。

如果有一个好的建议而不是使用上面的代码,那就太好了。

最佳答案

你可以试试这个。对于 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)">

在你的js中使用它,如下所示:

function markMe(icon, wnd, e) {

    if (!e) var e = window.event;
    e.stopPropagation();

    $(".contentIconDesk").removeClass('markIconDesk');
    if ($('#' + icon).hasClass('markIconDesk')) {
        wndSelected = "";
    } else {
        $('#' + icon).addClass('markIconDesk');
        wndSelected = wnd;
    }
};

关于jquery - 在 Firefox 和 IE 上使用 event.stopPropagation(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16112023/

相关文章:

firefox - 如何使用 selenium IDE 自动填充 Firefox 身份验证弹出窗口的用户名/密码

javascript - 为什么 jQuery 将 window 对象传递到它们的作用域中

JQuery 选项选择器

internet-explorer - 在 google.co.uk 上,为什么我的网站在 Firefox 中的排名高于其他桌面浏览器?

html - 如何通过 Chrome、Firefox 和 Internet Explorer 即时编辑元素的焦点、悬停等效果属性

css - Firefox 在使用 Tab 时忽略选定元素的轮廓和焦点样式

javascript - 删除带有 class 属性和 contenteditable 值集的空 div

jquery - 组合两个功能,同时它们单独运行

jquery - 我应该如何使 div 垂直和水平居中?

python - Python27 Selenium 中 Firefox Webdriver 的 Webdriver 对象没有属性 set_preference 错误