jquery - 单击功能 - 小问题

时间:2011-07-25 15:54:30

标签: jquery click bind

我有一个简短的问题,请:)

我有一个脚本,我可以看到5张图像。 用户控制他点击图像的顺序。

所以我想要完成的事情: 如果单击最后一个图像,则应显示div。

jQuery如何知道是否点击了第5张图片?

其余的(淡入div)我已经知道了。

请你这么善良并给我一点暗示吗? :)

3 个答案:

答案 0 :(得分:0)

您应该可以使用$('.myImages').is(":visible")来测试所有图片。

这是jquery docs for .is()

它可能看起来像这样的 (不完全是,我认为):

var allVisible = true;

$.each($('.myImages'), function(index, value){
    if( $(value).is(":visible") && allVisible )
    {
        //that's nifty, move on
        continue;
    }
    else
    {
        allVisible = false;
    }
});

if( allVisible )
{
    $('#myDiv').show();
}

答案 1 :(得分:0)

如果您点击处理程序,则在单击图像时添加一个类。

$(this).addClass("hasBeenClicked");
然后,您可以检查点击图像的数量

if ($("img.hasBeenClicked").length === 5) { alert("All 5 have been clicked"); }

要打破它,

img.hasBeenClicked

是“具有<IMG>类的所有hasBeenClicked元素”的CSS选择器语法。您可以通过将CSS <style>img.hasBeenClicked { border: 4px solid red }</style>添加到HTML并查看哪些内容为红色边框来对此进行测试。

$("img.hasBeenClicked")

然后只调用jQuery查询运算符$来获取具有该类的<IMG>元素的数组。

$("img.hasBeenClicked").length

使用数组.length属性来获取该类的<IMG>元素数。

$(this).addClass("hasBeenClicked");

只是记账,在点击图像时将hasBeenClicked类放在图像上。它不会超量计算,因为无论单击一个图像多少次,它只会在$返回的节点数组中计数一次。

答案 2 :(得分:0)

假设你的一个div被声明为:

<div id="div5">
<!-- img tag -->
</div>

然后你可以说$('#div5').click(function(){ $('#div5').show(); });