如何将此jQuery函数仅应用于某个类

时间:2012-05-30 14:29:53

标签: jquery html

$('a').each(function() {
    var clicked = false;
    $(this).bind('click', function() {
        if(!clicked) return !(clicked = true);
    });
});

大家好。我试图找出如何将此函数应用于仅包含名为<a>的类的touch元素。换句话说:

功能应用于此:

<a href="#" class="touch">

功能应用于此:

<a href="#">

抱歉,我是jQuery newb。

2 个答案:

答案 0 :(得分:4)

您需要class selector(与当前的element selector相结合):

$('a.touch').each(function() {
    var clicked = false;
    $(this).bind('click', function() {
        if(!clicked) return !(clicked = true);
    });
});

值得阅读jQuery API(尤其是selectors section)。它会在以后节省你很多时间!

值得记住的是,大多数jQuery选择器与CSS选择器相同。如果你对CSS有所了解,你也可以将这些知识应用于jQuery。


另外,由于大多数jQuery方法都适用于匹配集中的每个元素,因此您可以摆脱each循环。如果我已经正确理解,那么您正试图阻止每个a.touch元素在第一次单击时跟随该链接。如果这是对的,那么你可以这样做:

$('a.touch').one("click", function() {
    return false; 
});

答案 1 :(得分:2)

jQuery使用CSS selectors。将您的选择器更改为$('a.touch')以获取touch类的锚标记,或仅更新$('.touch')任何具有touch类的元素。