我想通过下面的函数传递 id1、id2 和 id3。这工作得很好:
function doSomething(id1,id2,id3) {
$(id1).fadeIn('slow',.25);
$(id1).fadeIn('slow',.25);
$(id1).fadeIn('slow',.25);
};
但这不起作用:
function doSomething(id1,id2,id3) {
setTimeout( " $(id1).fadeIn('slow',.25) ", 300);
setTimeout( " $(id1).fadeIn('slow',.25) ", 300);
setTimeout( " $(id1).fadeIn('slow',.25) ", 300);
};
如何让第二个工作?我的想法是我需要在 id 周围添加一些标点符号。或者我可以在 setTimeout 括号内为函数设置一个变量。有什么想法吗?
最佳答案
使用 setTimeout()
来计算字符串是不好的做法。相反,使用匿名函数:
function doSomething(id1, id2, id3) {
setTimeout(function() {
$(id1).fadeIn('slow', 0.25);
$(id2).fadeIn('slow', 0.25);
$(id1).fadeIn('slow', 0.25);
}, 300);
};
请注意,我已将所有 fadeIn()
放入一个 setTimeout()
中;它执行相同的操作,因为所有超时都会同时触发(300 毫秒)。如果你的 ID 是字符串,你也可以这样做:
function doSomething(id1, id2, id3) {
setTimeout(function() {
$(id1 + ', ' + id2 + ', ' + id3).fadeIn('slow', 0.25);
}, 300);
};
虽然有点乱,但是$.add()
可能会成功。
关于jquery - 如何通过 jQuery 中的 SetTimeout 函数传递元素 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8766803/