我有一个问题我在使用ajax在div中加载页面 这是一个代码
HTML
<div id="body"></div>
<a class='olink' href='#'>page name</a>
脚本
$('.olink').on('click',function(e){
var link = this.href;
$.ajax({
url: page,
type:'POST',
data : name,
success: function(resp){
$("#body").html(resp);
}
e.preventDefault();
});
});
上面的代码工作正常并在我的div中加载页面,现在问题是当我点击任何链接从加载的页面这个脚本不工作...目前我在主页的底部添加我的脚本,我应该添加每个页面都有这个脚本吗?
答案 0 :(得分:0)
你也可以 您可以使用脚本执行
使用不带后缀选择器的URL调用.load()时 表达式,内容在脚本出现之前传递给.html() 除去。这将在丢弃之前执行脚本块。如果 使用附加到URL的选择器表达式调用.load(), 但是,在更新DOM之前,脚本会被删除, 因此不会被执行。两种情况的例子如下所示:
此处,作为文档一部分加载到
#a
的任何JavaScript都将 成功执行。$( "#a" ).load( "article.html" );
但是,在以下情况中,文档中的脚本块为 加载到#b中被删除而不执行:
$( "#b" ).load( "article.html #target" );
$.getScript("url");
来获取脚本或eval
来源eval(source)
答案 1 :(得分:0)
如果我理解正确并且您在单击#body元素中的链接时尝试触发脚本,那么您需要使用委托事件处理程序:
$('#body').on('click', '.olink', function() {
var link = this.href;
$.ajax({
url: page,
type:'POST',
data : name,
success: function(resp){
$("#body").html(resp);
}
e.preventDefault();
});
});