我动态创建代码段:

var gg = setInterval(function() {
    if($('p:visible').length > 0) {
        $('p').trigger('click') ;
        clearInterval(gg);
    }
},500);


该代码有效。问题是我用不同的选择器创建了相同的代码片段:

var gg = setInterval(function() {
    if($('input:visible').length > 0) {
        $('input').trigger('focus') ;
        clearInterval(gg);
    }
},500);


因此,当我将这些代码放在一起(创建)时,整个过程进入了某个循环,并且不再起作用,请看以下示例:JsFiddle

问题是我为代码分配了相同的变量(gg)。所以我的问题是:每次创建这些代码片段时,如何创建不同的变量?我尝试使用var x=x++进行一些操作,但无法正常工作。

最佳答案

只需将代码片段放入匿名包装函数中,以使变量gg不再是全局的:

(function(){
    var gg = setInterval(function() {
        if($('input:visible').length > 0) {
            $('input').trigger('focus') ;
            clearInterval(gg);
        }
    },500);
})();

(function(){
    var gg = setInterval(function() {
        if($('p:visible').length > 0) {
            $('p').trigger('click') ;
            clearInterval(gg);
        }
    },500);
})();


(这些功能会自动执行...)

09-28 13:30