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

大家好。我试图弄清楚如何将此函数应用于仅<a>包含一个名为touch. 换句话说:

函数适用于此:

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

函数适用于此:

<a href="#">

抱歉,我是 jQuery 新手。

4

2 回答 2

4

您需要一个类选择器(结合您当前的元素选择器):

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

值得一读 jQuery API(尤其是选择器部分)。以后会为你节省很多时间!

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


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

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

​</p>

于 2012-05-30T14:31:14.747 回答
2

jQuery 使用CSS 选择器。将您的选择器更改为$('a.touch')用于带有类的锚标记touch或仅$('.touch')用于具有该类的任何元素touch

于 2012-05-30T14:33:20.587 回答