如果选择器存在-运行代码,否则重复检查
If selector exists - run code else repeat check
我试图检查选择器是否存在,如果它存在,我希望它运行一些代码,如果它不存在,我希望它重复检查。
我想这样做的原因是因为我知道一个元素将存在,但我不知道何时存在。
像这样:
if ($(.element).length ) {
// Do something
}else{
//check again
});
任何想法?
var interval = setInterval(function () {
if ($(".youtube5player").length) {
clearInterval(interval);
// Do stuff
}
}, 100);
这样做的是使用setInterval
大约每100毫秒执行一次检查,以查看选择器是否返回任何结果。如果是,间隔将被清除,代码将不再运行。
例子: http://jsfiddle.net/rBdFP/
除了使用setInterval之外,还可以使用递归setTimeout模式,如下所示:
(function doCheck(){
setTimeout(function(){
if ($(.element).length ) {
// Do something
}else{
//check again
doCheck();
});
}, 100);
})();
虽然在你的情况下似乎不太可能看到有时使用setInterval被认为是有害的。来自文档:
如果您的逻辑可能需要更长的时间来执行比间隔时间,建议递归调用使用window.setTimeout。例如,如果使用setInterval每5秒轮询一个远程服务器,网络延迟,无响应的服务器和许多其他问题可能会阻止要求在规定时间内完成。因此,你可能会发现让您自己处理排队的XHR请求,这些请求不一定会返回秩序。
对于这种情况,首选递归setTimeout模式
相关文章:
- JavaScript代码未正确检查ajax请求
- 如何检查这个代码点火器php函数是否工作,该函数是否在ajax url中使用
- 检查浏览器'在asp.net的后端代码中启用或禁用了s JS
- Visual Studio代码未在Javascript中执行错误检查
- JavaScript游戏引擎——编辑器中的代码运行:)检查器中的错误
- jQuery代码,用于在检查行时获取其他列的数据
- 检查用户是否具有角色分析云代码
- 使用 jQuery 检查文本可见性 .包含代码的行为不符合预期
- 为什么这个jQuery代码检查所有复选框不起作用
- 用于检查特殊字符的 JavaScript 代码
- 如何在一个代码中检查无效的日期格式和超过18年的有效期
- 如果事件发生后插入了检查代码,那么$(document).ready()会被激发吗
- 脸书喜欢检查代码
- Textmate中的拼写检查代码注释
- 检查代码,如果web浏览器支持256位加密
- 检查代码字符串中是否存在关键字
- 检查代码后面的javascript确认
- 如何在ASP.NET中检查代码隐藏中的布尔值
- 检查代码是否有效,而不实际评估它
- 在JavaScript中检查代码是否在WinStore (WinJS)应用程序中运行