我正在制作一个头像创作者。用户有一个链接列表,他们必须单击这些链接来自定义头像选项。
在列表下方,是一个提交按钮。我只希望当用户点击所有链接时出现提交按钮(这是一个响应式设计,所以这只会发生在移动设备上)。
如何使用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代码,因为我不确定使用哪个函数来检查是否已经点击了所有链接。 (我省略了内容滑块的代码以保持清晰)。
答案 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
}
}
})
答案 4 :(得分:0)
请参阅此链接以计算jquery中访问过的链接数...