var check; function showLoader(){ $('#mc_signup_form')。prepend('loading…'); check_init(); }jQuery/Javascript:setInterval检查DOM元素是否存在?
function check_init() {
check = setInterval('check_trigger()', 300);
}
function check_clear() {
clearInterval(check);
}
function check_trigger() {
if ($('.mc_error_msg').length == 0 || $('.mc_success_msg').length == 0) {
$('#mc_signup_form .loading').remove();
check_clear();
}
}
我不知道为什么我的浏览器不断告诉我,check_trigger()不存在? 我在我的showLoader()函数内启动了一个setInterval。它应该触发check_trigger。当两个div(.mc_error_msg或.mc_success_msg)中的一个存在时,我想清除Interval。
我在做什么错?
你有尝试把check_trigger()放在check_init()之上吗? – airmanx86 2010-08-04 05:41:47
没有什么区别! – matt 2010-08-04 05:43:46
@mathiregister,代码的范围是什么?因为setInterval()会在“window”/ global对象下运行,所以它可能找不到check_trigger()。 – airmanx86 2010-08-04 05:50:15