在每个循环中跳过jQuery中的单击项

时间:2009-08-07 20:58:44

标签: jquery

我正在尝试编写一个循环来迭代无序列表中的每个锚点,并对锚点内的图像执行操作。标记看起来像这样:

 <ul>
    <li><a href="#"><img src="image.png" /></a></li>
    <li><a href="#"><img src="image.png" /></a></li>
    <li><a href="#"><img src="image.png" /></a></li>
</ul>

任何一个锚点上的点击事件都应该触发循环。到目前为止,我有以下JS:

$("a").click(function(){
    $("a").each(function(){
        if (THIS IS THE CLICKED ON ANCHOR == TRUE) {
            // SKIP THIS ITEM
        }
        else {
            $("img",this).actions();
        };
    });
});

我认为我只需要跳过该项目的部分,如果它是点击锚点,但我不会采用不同的方法。

我正在使用jQuery 1.3.2。

谢谢!

3 个答案:

答案 0 :(得分:6)

我认为有一种更简单的方法:

$("a").click(function() {
   $("a").not(this).find('img').actions();
});

答案 1 :(得分:1)

你可以尝试:

$("a").click(function(){
    var clickedItem = this;
    $("a").each(function(){
        if (this == clickedItem) {
            // SKIP THIS ITEM
        }
        else {
            $("img",this).actions();
        };
    });
});

答案 2 :(得分:0)

看起来我想通了,我只需要从点击事件中保存 this

$("a").click(function(){
    var clickedOnAnchor = this;
    $("a").each(function(){
        if (clickedOnAnchor == this) {
            // SKIP THIS ITEM
        }
        else {
            $("img",this).actions();
        };
    });
})