2010-12-16 19 views
2

好吧,我有一堆與「mashupButton」的相同ID的圖像,但是我的印象是,如果我做一個jQuery的點擊功能使用「本」,而不是「# mashupButton「,它只會對點擊的圖像執行該功能。這適用於我,但僅適用於頁面上帶有該ID的第一張圖像,並且在完成一次後,它不再有效。jQuery的這個選擇不工作的圖片

後的文件已準備就緒:

$("#mashupButton").click(function() 
       { 
        $(this).effect("drop", {direction:"up"}, 1000); 
       }); 

標籤是這樣的:

<a href="#" onClick="differentFunction"><img src="imagename.png" id="mashupButton"></a> 

所以澄清: 我有說10張全部用ID mashupButton - 我有一個jQuery的效果是在點擊時在該特定圖像上執行。但是,它只適用於這些圖像的第一個,即使它們都包含相同的ID。我是否需要爲每個ID設置唯一的ID,還是可以以某種方式實現這種方式?

回答

1

而是爲那些圖像的類,然後使用jQuery點擊添加到所有圖像。

$(".mashupButton").click(function() 
       { 
        $(this).effect("drop", {direction:"up"}, 1000); 
       }); 


<a href="#" onClick="differentFunction"><img src="imagename.png" class="mashupButton"></a> 
+0

工作就像一個魅力,但我唯一的問題是這些按鈕與阿賈克斯重裝後不久,然後它不能執行同樣的效果,也許是因爲它認爲自己已經隱藏? – 2010-12-16 18:50:56

+0

固定 - 使用jQuerys實時功能。 – 2010-12-16 19:03:19

+0

用於將事件綁定到可能還不存在的對象的'live()'函數記錄在這裏:http://api.jquery.com/live/ – Phrogz 2010-12-16 22:24:33

8

的「ID」屬性的值必須是頁面中唯一。重複使用「mashupButton」作爲「一堆」圖像的「id」是不正確的標記。每個<img>標籤必須具有其自己的唯一「ID」(或者根本沒有「ID」)。當然,您可以使用「class」屬性將這些<img>元素標記爲「click」處理程序的候選對象。

2

我有說10張全部用ID mashupButton

是非法的具有相同ID不止一個元素。

如果你想使用一個選擇,你應該添加一個類名。

2

爲了擴大對@尖尖的答案...是的,id值必須是唯一的。如果您可以更改標記,只需將id屬性更改爲類屬性即可。

<img src="imagename.png" class="mashupButton" ... 

那麼你的jQuery會是什麼樣子:

$('.mashupButton').click(function() ...