2008-12-24 93 views
2

我試圖改變圖像的邊框顏色使用其ID與jquery (照片['id']從前一個函數傳入) 照片的ID是形式「photo239839」jQuery使用ID隱藏

$('#photo'+photo['id']+'').click(function(){ 
     $('#photo'+photo['id']+'').css('border-color','#777'); 

    }); 

當我嘗試使用它的類它的工作原理, 使用相同的代碼,但由於存在相同 頁面上的多個圖像與同一類我不能用這個方法

$('img.flickr_photo').click(function() { 
    $("this.flickr_photo").css('border-color','#777'); 
}); 
+0

我想看到的HTML參與,確保CSS選擇是正確的。 – 2008-12-24 22:23:21

+0

你有沒有試過這個http://docs.jquery.com/Effects/hide?你可以使用'img.flickr_photo作爲選擇器。 – Perpetualcoder 2008-12-24 22:48:18

回答

18

這是你需要做什麼:

$('img.flickr_photo').click(function(){ 
     $(this).css('border-color','#777'); 
}); 
1

無論是照片[「身份證」]是錯誤的,或者你設置單擊處理後正在發生變化。

爲了測試第一情況下,可以發出警報(或與螢火蟲CONSOLE.LOG,或任何)jQuery的選擇的長度:

alert($('#photo'+photo['id']).length); 

在第二種情況下的解決方案是使用「這」。在點擊處理程序中,「this」被設置爲導致點擊事件的元素。

$('#photo'+photo['id']).click(function(){ 
    $(this).css('border-color','#777'); 
}); 

編輯: @Dreas格列奇是正確的,只要你想要的行爲適用於所有與flickr_photo類的元素。如果您可以概括選擇器以選擇全部單個查詢的元素,最好這樣做。

3

我總是會添加一個css類而不是內聯樣式。 更多可維護和可擴展。

例子:

$('img.flickr_photo').click(function(){ 
     $(this).addClass('greyishBorder'); 
});