2009-06-24 73 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

相關問題