即使在更新DIV之后,Javascript函数也会继续执行

即使在更新DIV之后,Javascript函数也会继续执行,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我在该Id上使用ajax更新了某些内容,例如,假设我有一个完整的主页,在正文中我有以下代码: <div id="content"> <button onclick="update1()"></button> <button onclick="update2()"></button> </div> <script> function update1(){

我在该Id上使用ajax更新了某些内容,例如,假设我有一个完整的主页,在
正文中我有以下代码:

<div id="content">
<button onclick="update1()"></button>
<button onclick="update2()"></button>
</div>

    <script>
         function update1(){
                    $.ajax({
                   url:"Page1/index.html",
                   type:'GET',
                   success: function(data){
                       $('#content').html((data));
                   }
                });
         }
             function update2(){
                    $.ajax({
                   url:"Page2/index.html",
                   type:'GET',
                   success: function(data){
                       $('#content').html((data));
                   }
                });
         }
    </script>
<script src="js/script.js"></script>
第2页的
index.html
包含如下代码:

<button onclick="update1()"></button>
<button onclick="update2()"></button>
<div id="page1"> .....</div>
<button onclick="update1()"></button>
<button onclick="update2()"></button>
<div id="page2"> .....</div>
$(document).ready(
            function() {
                setInterval(function() {

                        $.ajax({
                            url: "someapi",
                            type: "POST",
                            dataType: "json",
                            success: function (result) {  
                                console.log(result)
                           } 
                        });

                }, 2000);
            });
$(document).ready(function() {
var the_interval = setInterval(function() {

    $.ajax({
        url: "someapi",
        type: "POST",
        dataType: "json",
        success: function (result) {
            console.log(result)
        }
    });

}, 2000);

function stopTheInterval(){
    clearInterval(the_interval);
}

function update1(){
    $.ajax({
        url:"Page1/index.html",
        type:'GET',
        success: function(data){
            $('#content').html((data));
        }
    });
}

function update2(){
    $.ajax({
        url:"Page2/index.html",
        type:'GET',
        success: function(data){
            $('#content').html((data));
            stopTheInterval(); // we stop the first interval
        }
    });
}});
我想做的是,当按下按钮调用Ajax,从Page1获取index.html并将其放入id内容中时,运行
script.js
此脚本仅在idPage1存在时执行,我从中发现了这个技巧,通过使用if和jQuery,例如
if($(“#Page1')。长度){my sj code}
javascript代码仅在该id存在时运行,但不幸的是,当我单击按钮获取另一个id为Page2的Page2代码继续运行时,有没有办法在该div更新时停止此js代码???

尝试使用
update1().stop()
update2
函数的启动中

script.js
不要使用设置间隔。

function some_function(){ 
  $.ajax({
      url: "someapi",
      type: "POST",
      dataType: "json",
      success: function (result) {  
          console.log(result)
     } 
  });  
}
并在update1.0中调用上述函数,因为只有在更新page1时才需要它


函数update1(){
$.ajax({
url:“Page1/index.html”,
类型:'GET',
成功:功能(数据){
$('#content').html((数据));
some_function()//在这里调用函数
}
});
}
函数update2(){
$.ajax({
url:“Page2/index.html”,
类型:'GET',
成功:功能(数据){
$('#content').html((数据));
}
});
}

函数没有停止,因为除非您使用
clearInterval()
函数清除间隔,否则间隔将不会停止触发

只需将所有JS代码放在一个文件中,如下所示:

<button onclick="update1()"></button>
<button onclick="update2()"></button>
<div id="page1"> .....</div>
<button onclick="update1()"></button>
<button onclick="update2()"></button>
<div id="page2"> .....</div>
$(document).ready(
            function() {
                setInterval(function() {

                        $.ajax({
                            url: "someapi",
                            type: "POST",
                            dataType: "json",
                            success: function (result) {  
                                console.log(result)
                           } 
                        });

                }, 2000);
            });
$(document).ready(function() {
var the_interval = setInterval(function() {

    $.ajax({
        url: "someapi",
        type: "POST",
        dataType: "json",
        success: function (result) {
            console.log(result)
        }
    });

}, 2000);

function stopTheInterval(){
    clearInterval(the_interval);
}

function update1(){
    $.ajax({
        url:"Page1/index.html",
        type:'GET',
        success: function(data){
            $('#content').html((data));
        }
    });
}

function update2(){
    $.ajax({
        url:"Page2/index.html",
        type:'GET',
        success: function(data){
            $('#content').html((data));
            stopTheInterval(); // we stop the first interval
        }
    });
}});
我在这里做的是将区间数保存在一个变量中,并创建一个新函数来清除它。
接下来,我所做的就是将我的新函数放入update2()函数中,所以一旦我得到数据,我就清除间隔并停止重复函数。

你的问题不清楚“代码继续运行”是什么意思?我用我能用的最简单的方式写了它..当你点击
它会无限期执行吗?在你的函数
update2
中,在ajax调用之前,确保你删除
#page1
如果它存在。也许
如果($('#page1').length){$('#page1').remove()}
setInterval是我应用程序中的所有内容,我需要不断检查是否有更改,如果没有它,任何事情都不会起作用,我只提供了一些示例,如果我将超过2000行的代码放入机密文件中,这是不值得的,谢谢大家,我会想出一些办法的。谢谢大家,这更接近于我问题的解决方案。没问题这很有帮助。