对象中的缓存选择器(jquery)

时间:2012-04-19 07:23:36

标签: jquery

我有问题......我做错了什么?

我想使用以前保存在变量中的选择器。我们的想法是在对象的函数中使用它。

var escribir = {
    obj:$('#cont'),
    algo: function(i) { 
        escribir.obj.html(i++);
        setTimeout('escribir.algo('+i+')',1000);
    }
}

$(document).ready(
    function(){
    escribir.algo(0);
    }
);

....
<div id="cont"></div>

3 个答案:

答案 0 :(得分:1)

var escribir = {
    obj : $('#cont'),
    algo : function (i) {
           |
           V
        escribir.obj.html(i++);
        setTimeout(function() { escribir.algo(i) }, 1000); // Don't use `eval`
    }
}

编辑:此处的工作示例http://jsfiddle.net/elclanrs/sQdST/

答案 1 :(得分:0)

如果你以更好的形式使用闭包,你可能会更好。

jQuery(function ($) {

    var escribir = {
        obj : $('#cont'),
        algo_counter : 0,
        algo : function () {
            escribir.obj.html(escribir.algo_counter++);
            setTimeout(escribir.algo, 1000);
        }
    };

    // optionally:
    // escribir.algo_counter = 10;

    escribir.algo();

}

这样,您就没有使用setTimeout的{​​{1}}版本。

答案 2 :(得分:0)

您的 obj escribir 的成员,因此您需要将其更改为escribir.obj

var escribir = {
    obj:$('#cont'),
    algo: function(i) { 
        escribir.obj.html(i++); // without escribir.obj you will get reference error, otherwise you have a variable name obj.
        setTimeout('escribir.algo('+i+')',1000);
    }
}