检查以确保使用jQuery / jScript连续两次单击相同的项目

时间:2011-04-01 16:34:38

标签: javascript jquery

所以,我有一个我一直在研究它的脚本可以在这里看到: http://xeo.tryptamine.tv/lookbook2/ 现在如果您使用该脚本,您将看到如果单击它已经存在的图像,它仍然会获得淡入淡出效果。我需要知道如何正确解除绑定事件并在单击另一个事件后重新绑定它。这是它的点击功能:

            $('.righticons img').click(function(){
            var z = $(this).attr("class");
            $('.main a img:eq('+z+')').hide();
            $('.main a img:eq('+z+')').css({"z-index": y});
            $('.main a img:eq('+z+')').fadeIn();
            y++;

我试图制作一个这样的if语句,但最后出现了未定义。

            $('.righticons img').click(function(){
            var z = $(this).attr("class");
            if (z != last){
            var last = z;
            $('.main a img:eq('+z+')').hide();
            $('.main a img:eq('+z+')').css({"z-index": y});
            $('.main a img:eq('+z+')').fadeIn();
            y++;
            };

我甚至开始玩.unbind('click'),但不知道如何绑定它。 PS,我有脚本为侧面的每个拇指生成一个数字,并根据它的数组位置将其附加到class属性。谢谢你的回答!

2 个答案:

答案 0 :(得分:0)

有几种方法可以解决这个问题,但是如果你只追踪这个项目是否是最后选择的项目,你可以避免绑定和重新绑定:

$('.righticons img').click(function(){
    if ($(this).data('selected') !== true) {
        var z = $(this).attr("class");

        $('.main a img:eq('+z+')').hide();
        $('.main a img:eq('+z+')').css({"z-index": y});
        $('.main a img:eq('+z+')').fadeIn();

        y++;

        $(this).data('selected', true);
    }
});

答案 1 :(得分:0)

$('.righticons img').click(function(){
    if ($(this).data('selected') !== true) {
        var z = $(this).attr("class");

        $('.main a img:eq('+z+')').hide();
        $('.main a img:eq('+z+')').css({"z-index": y});
        $('.main a img:eq('+z+')').fadeIn();
        $('.righticons img').data('selected', false)
        $(this).data('selected', true);
        y++; 
    }
});

将除$(this)

之外的所有内容添加为false