javascript - 如何不为每个对象应用 .one()

标签 javascript jquery html

我在执行某项任务时遇到一些困难。我有以下代码

$(document).ready(function() {
    var Result = 0;
    var stop_process = false;
    $('img').click(function(){
            if( !stop_process ){
                if( $(this).hasClass( 'home' ) ){
                        stop_process = true;
                $('body').append('<div class="message">Your Result is: </div>' + Result);
            }
            if( $('img.home').length == 0 )
                        $(this).addClass('home');

            var $elem1 = $(this).parent();
            var $elem2 = $('span.last');
            $(this).toggleClass('selected');
                if ($elem2.length > 0) {
                        connect($elem1[0], $elem2[0], "#0F0", 5);
                } else { 
                $elem1.addClass('last');
            }
            $('span').removeClass('last');
            $elem1.addClass('last');
        Result++;
        }
    });

我想禁止第二次点击,这样我就会有一个完整的圆圈,并且我已经遍历了所有对象一次。如果我应用 .one() 我会得到我想要的,但我无法完成圆圈,因为 home 对象仍然不可单击。有什么办法可以解决这个问题吗?将 .one() 应用于每个对象,但不应用于“home”对象?

提前致谢!

完整代码:

http://jsfiddle.net/N2Pdc/

最佳答案

尝试使用jQuery off ,您可以围绕它构建 if 语句来帮助您实现这一目标。将您单击的第一个元素存储在变量中,并有一个计数器,这样您就可以确保在您之前单击了所有其他元素后只能单击第一个对象(闭合圆圈)。

关于javascript - 如何不为每个对象应用 .one(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21876481/

相关文章:

javascript - 使用 CanvasJS 在图表中显示 Y 轴

javascript - JQuery 如何处理 getElementsByClassName 迭代?

javascript - Node js写入文件

javascript - Jquery 自动完成 - 不要用结果填充输入框

javascript - jQuery 获取选择选项值为空

html - 如何让一个html标签尽可能的展开以适应父级的宽度?

php - 构建广泛的基于谷歌地图的应用程序

jquery - 使用 jquery 填充 html 表数据失败 Uncaught ReferenceError

php - 如何使用 HTML 图像按钮和 PHP?

jquery - 使用 API 获取 Facebook 个人资料图片并将其保存到项目文件夹