如何阻止jQuery .load()函数多次触发?

时间:2015-10-09 11:42:47

标签: javascript jquery html

是否可以将函数严格仅调用一次?如同每次加载页面一样。

我正在使用:

$( document ).ready( function() { 
    $( "#targetDiv" ).load( "http://www.example.com #specificElementID" );
});

我发现如果你在加载时多次点击整个页面,有时它似乎会加载两次?有没有办法防止这种行为不止一次发生?我的印象是$( document ).ready( function() { ...会帮助我实现这一目标。但事实并非如此!

2 个答案:

答案 0 :(得分:4)

在正常情况下,ready处理程序不会被多次调用。但是,如果您的文件被加载两次,这将导致就绪处理程序被调用两次。

使用布尔标志可能会隐藏真正的问题(但您仍然需要查看根本问题):

var _ready = false;
$( document ).ready( function() { 
    if (_ready) { return; }
     _ready = true;
    $( "#targetDiv" ).load( "http://www.example.com #specificElementID" );
});

有关详细信息,请参阅此相关问题:jQuery $(document).ready () fires twice

答案 1 :(得分:1)

添加此行

$("#some_id").unbind('change');

$("#targetDiv").load("http://www.example.com #specificElementID");