好吧,我有一堆具有相同ID“mashupButton”的图片,但是我的印象是,如果我使用“this”创建一个jQuery click函数,而不是“#mashupButton”它只会执行单击图像上的功能。这适用于我,但仅适用于页面上具有该ID的第一张图片,并且在我完成一次后,它不再有效。
文档准备好后:
$("#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,或者以某种方式以这种方式实现?
答案 0 :(得分:8)
页面中“id”属性的值必须是唯一的。重复使用“mashupButton”作为“一堆”图像的“id”是不正确的标记。每个<img>
标记必须有自己唯一的“id”(当然,根本没有“id”)。当然,您可以使用“class”属性将这些<img>
元素标记为“click”处理程序的候选元素。
答案 1 :(得分:2)
我说10张图片都带有ID mashupButton
拥有多个具有相同ID的元素是违法的。
如果要使用一个选择器,则应添加一个类名。
答案 2 :(得分:2)
要扩展@ Pointy的答案......是的,id值必须是唯一的。如果您可以更改标记,只需将id属性更改为类属性。
<img src="imagename.png" class="mashupButton" ...
然后你的jQuery看起来像:
$( '.mashupButton' ).click( function() ...
答案 3 :(得分:2)
你有一个语法无效的页面。当您遇到麻烦时,在进一步查看之前,您应始终validate your HTML(和validate your CSS)。
答案 4 :(得分:1)
而是为这些图像创建一个类,然后使用jQuery将点击添加到所有图像。
$(".mashupButton").click(function()
{
$(this).effect("drop", {direction:"up"}, 1000);
});
<a href="#" onClick="differentFunction"><img src="imagename.png" class="mashupButton"></a>