2014-02-05 77 views
1

好吧,我已經通過了建議的q/a,但他們似乎沒有回答這個問題,或者完全沒有答案。將一個事件處理程序分配給多個元素?

我想減少混亂,並有一個事件處理程序一次分配給幾個圖像,而不是分開。這是當前的代碼以重複碼:

$(document).ready(function(){ 

     $("#div1 img:eq(0)").mouseenter(function(){ 
        $(this).css("border","1px solid green"); 
    }) 

     $("#div1 img:eq(1)").mouseenter(function(){ 
        $(this).css("border","1px solid green); 
    }) 

     $("#div1 img:eq(2)").mouseenter(function(){ 
     $(this).css("border","1px solid green"); 
    }) 

})

在普通的JavaScript,我可能已經做了一些類似:

div1imgs=documentGetElementById("div1").getElementsByTagName("img"); 

for(i=0; i<div1imgs.length; i++) { 
div1imgs[i].onmouseover=function(){this.style.border="1px solid green"} 

人們很容易只需要使用,但我進入jquery並更喜歡保持jquery。在jQuery中是否存在一些等效的解決方案,希望更簡單的方法是將一個事件處理程序同時分配給一組圖像?還使用循環,否則?

回答

2

根據您的香草js版會是這樣:

$("#div1 img").mouseenter(function() { 
    $(this).css("border","1px solid green"); 
}); 

注意,當你使用jQuery的事件綁定到多個元素,它會自動遍歷每個單獨的元素進行綁定。

+0

謝謝,有人懷疑它會很簡單。 – user3274901

+0

是的。 jQuery的美妙之處在於它在幕後爲你做了很多事情。只要你掌握了JS的基礎知識,就可以安全使用,而且在很多情況下更加高效。如果它有幫助,不要忘記標記爲答案:)。 – Bic

相關問題