繁体   English   中英

jQuery使用ID隐藏

[英]jQuery Hide using ID

我正在尝试使用带有jquery的id改变图像的边框颜色(照片['id']从前一个函数传入)照片的ID是'photo239839'的形式

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

    });

当我尝试使用它的类使用相同的代码时它可以工作,但我不能使用这个方法,因为在同一页面上有多个图像具有相同的类

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

这是你需要做的:

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

我总是会添加一个css类而不是内联样式。 更具可维护性和可扩展性。

例:

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

设置点击处理程序后,照片['id']错误或正在更改。

要测试第一种情况,您可以使用jQuery选择的长度警告(或使用FireBug的console.log,或其他):

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

第二种情况的解决方案是使用'this'。 在单击处理程序中,“this”设置为导致click事件的元素。

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

编辑: @Dreas Grech是正确的,只要您想将行为应用于flickr_photo类的所有元素。 如果您可以推广选择器以使用单个查询选择所有元素,那么最好这样做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM