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
中的代码,我怎样才能强制它遵循它,并用idMyDiv
替换
的内容?加载动态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事件处理程序