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

Jquery: Check if all links in a list have been clicked on

本文关键字:链接 列表 单击 检查 是否 Jquery      更新时间:2023-09-26

我正在制作一个化身创建者。用户有一个链接列表,他们必须点击这些链接来定制化身选项。

列表下面是一个提交按钮。我只想在用户点击所有链接时显示提交按钮(这是一种响应式设计,所以这只会在移动设备上发生)。

我如何使用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,但我没有添加任何Jquery代码,因为我不确定使用哪个函数来检查是否所有链接都被点击了。(为了保持清晰,我省略了内容滑块的代码)。

给每个点击的链接添加一个CSS类,然后测试总共有多少个,怎么样?

$(function() {
    var $all = $("ul li a");
    $all.click(function() {
        $(this).addClass("clicked");
        if($(".clicked").length === $all.length) {
           $(".submit").show();
        }
    });
});
$('.wrapper li a').click(function () {
    $(this).addClass('active');
    if ($('.wrapper li a.active').length == $('.wrapper li a').length) {
        $('.wrapper').removeClass('not-active').addClass('active');
    }
});

你可以这样做-

$('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/

试试这个,

$(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