2008-12-24 99 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'); 
});