如何让jquery反复运行
how to get jquery to run repeatedly
我目前有一段jquery代码,它查找特定的URL(在末尾有一个锚),并在匹配时运行一个函数。如果这是加载的第一个URL,则代码只运行一次。是否有可能让以下代码运行,直到它有一个匹配?
$(document).ready(function(){
var url = "https://s3-eu-west-1.amazonaws.com/datahealthcheck16-test/index.html#backup-section-3";
$(function(){
if (location.href==url){
paintLine();
}
})
});
它只运行第一次,因为更改哈希不会再次触发DOM就绪处理程序,但它会触发hashchange
事件。
$(window).on('hashchange', function() {
if ( window.location.hash === '#backup-section-3' ) {
paintLine();
}
}).trigger('hashchange'); // fire on first load as well
注意,window
总是可用的,并且不需要DOM就绪处理程序
您可以使用setTimeout()
函数来运行您的函数,例如:
$(document).ready(function(){
var url = "https://s3-eu-west-1.amazonaws.com/datahealthcheck16-test/index.html#backup-section-3";
function test() {
if (location.href == url) {
paintLine();
} else {
setTimeout(test, 1000);
}
}
test();
});
但是你的代码背后的想法是什么?我相信有更方便的方法来完成你的任务。
使用adeneo的答案:
下面是与你的代码匹配的内容:
$(document).ready(function(){
var url = "https://s3-eu-west-1.amazonaws.com/datahealthcheck16-test/index.html#backup-section-3";
$(function(){
if (location.href==url){
paintLine();
}
});
$(window).on('hashchange', function() {
if ( location.href == url ) {
paintLine();
}
});
});
相关文章:
- 对动态创建的元素运行jQuery.ech()
- 如何在加载角度函数后运行jQuery代码
- 在AJAX jQuery加载()之后运行jQuery代码
- 如何仅在设备基于 iOS 时运行 jQuery 代码
- 使用 .on 函数运行 jQuery 声明函数
- html代码没有运行jquery问题
- 仅在尚未运行jQuery UI的情况下运行动画
- 在运行jquery之前从5开始倒计时
- 在不重新运行jquery验证的情况下检查表单是否有效
- 在Angular App中运行jQuery函数
- 一旦设置了PHP查询字符串,如何运行jQuery脚本
- 如何在Ember中更改模板时运行JQuery代码
- 如果URL包含字符串don't运行jQuery函数
- 在php之前运行jQuery脚本
- 无法动态地将 jquery 添加到头部并运行 jquery 代码
- 在 HTML 中运行 jquery 脚本
- 如何在控制器外部和视图内在 AngularJs 中运行 jQuery
- 在具有相同类的每个表上运行 jquery
- 在 Angular 完成渲染后运行 JQuery 代码
- 如何选择当前 DIV ID 以使用该 ID 运行 Jquery