Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何确保js代码能够检测到加载的文件_Javascript_Jquery_Html_Ajax - Fatal编程技术网

Javascript 如何确保js代码能够检测到加载的文件

Javascript 如何确保js代码能够检测到加载的文件,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我在文件assets/URL.js中有此代码: $(function(){ $("a").on("click", function () { event.preventDefault(); var TheURL = $(this).attr('href'); if(TheURL){ $("#MyDiv").load(TheURL , { name: '' }, function()

我在文件
assets/URL.js
中有此代码:

$(function(){
    $("a").on("click", function () {
        event.preventDefault();
        var TheURL = $(this).attr('href');
        if(TheURL){
            $("#MyDiv").load(TheURL , { name: '' }, 
                function() {
                    alert("done");
                });
        }
    });
});
它所做的是,如果单击
元素,上面的函数会阻止页面访问该页面,然后它会获取url并将其加载到id为
MyDiv
div

下面是
index.html
的代码:

<html>
  <head>
    <script type="text/javascript" src="assets/URL.js?v=1"></script>
  </head>
  <body>
    <div id="MyDiv">
      <a href="files/1.html"></a>
    </div>
  </body>
</html>
现在,当我单击文件
index.html
中的
时,id为
MyDiv的
的内容将更改
文件/1.html
的内容,而无需重新加载页面


但是,当我在文件
file/1.html
中单击
时,页面将重新加载并转到
file/2.html
,并且不遵循
assets/URL.js
中的代码,我怎样才能强制它遵循它,并用id
MyDiv
替换
的内容?

加载动态html时,您需要再次设置EventHandler,现在您只将click事件绑定到index.html中的现有A标记,而不是像1.html这样的动态加载内容中的未来标记

您可以尝试以下方法:

$(function(){
  RefreshEventHandlers();
});

function RefreshEventHandlers() {
    $("a").on("click", function () {
        event.preventDefault();
        var TheURL = $(this).attr('href');
        if(TheURL){
            $("#MyDiv").load(TheURL , { name: '' }, 
                function() {
                    alert("done");
                    RefreshEventHandlers(); // bind click to newly added A tags.
            });
        }
    });
}

要确保在所有新的A标记上设置了单击事件处理程序

,在加载动态html时,您需要再次设置事件处理程序,现在您只将单击事件绑定到index.html中的现有A标记,而不是像1.html这样的动态加载内容中的未来A标记

您可以尝试以下方法:

$(function(){
  RefreshEventHandlers();
});

function RefreshEventHandlers() {
    $("a").on("click", function () {
        event.preventDefault();
        var TheURL = $(this).attr('href');
        if(TheURL){
            $("#MyDiv").load(TheURL , { name: '' }, 
                function() {
                    alert("done");
                    RefreshEventHandlers(); // bind click to newly added A tags.
            });
        }
    });
}
确保在所有新的A标记上设置了click事件处理程序