Jquery:检查是否已单击列表中的所有链接

时间:2013-07-16 11:46:10

标签: javascript jquery

我正在制作一个头像创作者。用户有一个链接列表,他们必须单击这些链接来自定义头像选项。

在列表下方,是一个提交按钮。我只希望当用户点击所有链接时出现提交按钮(这是一个响应式设计,所以这只会发生在移动设备上)。

如何使用Jquery检查是否已单击所有链接,然后将“活动”类应用于包装器以显示提交按钮。

注意:链接是内容滑块的一部分,因此它们不会链接到外部页面(单击链接隐藏/显示当前页面上的内容)。

<div class="wrapper not-active">

<ul>
    <li><a href="#">HairColour</a></li>
    <li><a href="#">EyeColour</a></li>
    <li><a href="#">SkinColour</a></li>
    <li><a href="#">HairStyle</a></li>
</ul>


<a href="#" class="submit">SUMBIT CHOICES</a>

</div>

我有一个JSFIDDLE Here,但我没有添加任何Jquery代码,因为我不确定使用哪个函数来检查是否已经点击了所有链接。 (我省略了内容滑块的代码以保持清晰)。

5 个答案:

答案 0 :(得分:6)

如何为每个已点击的链接添加一个CSS类,然后测试总数中有多少个?

$(function() {
    var $all = $("ul li a");
    $all.click(function() {
        $(this).addClass("clicked");
        if($(".clicked").length === $all.length) {
           $(".submit").show();
        }
    });
});

答案 1 :(得分:1)

$('.wrapper li a').click(function () {
    $(this).addClass('active');
    if ($('.wrapper li a.active').length == $('.wrapper li a').length) {
        $('.wrapper').removeClass('not-active').addClass('active');
    }
});

答案 2 :(得分:1)

你可以这样做 -

$('ul li a').on('click', function (e) {
    e.preventDefault();
    $(this).addClass('clicked');
    if ($('.clicked').length === $('ul li a').length) {
        $('.submit').show();
    }
});

演示---> http://jsfiddle.net/ddreL/5/

答案 3 :(得分:0)

试试这个,

$(function(){
    var count = 0;
    $('a').on("click",function(){
        if(!$(this).hasClass('dummy')){
          $(this).addClass("dummy");
          count++;
        }
    });

    function submitFn(){
      var alen = $('a').length;
        if(count == alen) {
          //submit form
        }
        else{
          //throw message
        }
    }
})

Jquery

答案 4 :(得分:0)

请参阅此链接以计算jquery中访问过的链接数...

http://remysharp.com/2008/02/25/visited-plugin/