2009-06-24 72 views
1

我想通过事件上,除了拥有一流的“no_inspect”页面上的所有元素添加鼠标,如何为除具有某个类的所有元素添加事件?

我想加载所有的页面元素后添加此事件,我试图把它写这样的:

$('*:not(.no_inspect)').mouseover(MouseOverEvent); 

但它不工作,接缝错过了一些东西。

UPDATE不工作方式:

该事件被附加到页面上的所有元素“有no_inspect类或没有”这不是我想要的行为。

UPDATE MouseOverEvent代码:

function DIOnMouseOver(evt) { 
    element = evt.target; 

    // set the border around the element 
    element.style.borderWidth = '2px'; 
    element.style.borderStyle = 'solid'; 
    element.style.borderColor = '#f00'; 
} 
+0

“不工作”是什么意思?你有错误吗?活动是否不会触发?事件是否分配给错误的元素? – 2009-06-24 15:48:05

回答

2

mouseover事件气泡。改为尝试mouseenter

另外,你为什么将样式应用到evt.target?为什么不'这个'?

function DIOnMouseOver(evt) { 
    $(this).css({ 
     border: '2px solid #f00' 
    }); 
} 

正如Matchu(在评论)提到,另一种方式,以避免传播是调用event.stopPropagation()事件处理程序中。

+1

中添加了mouseover事件代码,或者将evt.stopPropagation()添加到函数的末尾。 – Matchu 2009-06-24 16:09:13

0

您发布应该工作的代码,你肯定鼠标悬停事件在不触发对于被包装你鼠标放在一个元素?

您是否正在使用最新版本的JQuery。我知道旧版本在非选择器中有某种​​类错误。

你可能想尝试

$('*').not('.no_inspect').mouseover(MouseOverEvent); 
+0

在问题 – 2009-06-24 16:04:53

相关问题