gpt4 book ai didi

javascript - 如果内容未显示,则停止 javascript 执行

转载 作者:行者123 更新时间:2023-12-03 12:22:45 25 4
gpt4 key购买 nike

我有一个div,其中包含一个每X秒更新一次div的javascript,但是当我用另一个上下文替换div的内容时,我希望javascript停止,因为它返回旧内容并覆盖当前内容。我怎样才能让javascript在这些条件下停止?

 <li><%= link_to "Run task", { :controller => "tasks_runner", :action => "task_form"}, {:remote => TRUE} %></li>
<li><%= link_to "Monitor tasks", { :controller => "tasks_runner", :action => "monitor_tasks"}, {:remote => TRUE} %></li>

<div class="content-module-main" id='task_runner_content'> </div>

每个链接都会更新 div 的内容。我的问题是,秒链接使用表内容和更新表的脚本(更新 task_runner_content 内容)更新 div,当我单击第一个链接时,X 秒后内容将被秒链接的内容覆盖因为 JavaScript。

更新脚本:

<script>
$(function() {
$(window).ready(function() {
setTimeout(function() {
jQuery.ajax({
url: "/tasks_runner/monitor_tasks",
type: "GET",
dataType: "script"
});
}, 3000); //in 3 seconds from now
});
});
</script>

最佳答案

如果您使用 setInterval 或 setTimeout 来更新内容(听起来像是这样),您只需清除更改上下文的函数中的计时器,如下所示:

function update(){
$('somediv').html('some value');
}

var _timer = setInterval(update, 1000);

function replaceContext(){
$('somediv').html('new context');
clearInterval(_timer);
}

关于javascript - 如果内容未显示,则停止 javascript 执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24362066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com