我有问题......我做错了什么?
我想使用以前保存在变量中的选择器。我们的想法是在对象的函数中使用它。
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>
答案 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);
}
}