停止执行由AJAX中加载的脚本加载的JS事件

时间:2013-05-30 15:41:14

标签: javascript ajax

我在JS中有一个应用程序,我必须使用AJAX加载部分应用程序。 完成AJAX功能后,将执行脚本。

但是当我想加载我的应用程序的另一部分时,我想知道如何删除绑定到我刚加载的应用程序部分的所有事件和变量?

例如:

$('#loadPart1').click(function(){
     $.ajax({
        url : url,
        success : function(xhr){
            // xhr contains javascript to execute 
            // and events I want to stop executing afterward
            $('body').html(xhr);
    });
});

// load another part of the app
// should stop execute previous JS
// and now executes just loaded JS from this AJAX load.
$('#loadPart2').click(function(){
     $.ajax({
        url : url,
        success : function(xhr){
            // xhr contains javascript to execute
            // and replace old script
            $('body').html(xhr);
    });
});

我希望你明白我想要解释的内容。这只是一个帮助的代码,这不是我真正的代码,所以不要理会它,它只是一个图像供你理解。

'因为我已经有了一个应用程序,但是当我在AJAX中加载某些内容时,之前的脚本事件仍会执行。

是否存在一种技术,一种可以停止执行我不想要的Javascript的模式。我想删除所有事件,但没有明确地调用它们。

1 个答案:

答案 0 :(得分:0)

要删除事件处理程序,您可以使用jQuery事件处理程序.off().on()代替.click()

http://api.jquery.com/off/

http://api.jquery.com/on/