我将在一个简单的例子中总结我的问题,我开始
我进行演示时有两个示例页面
01.html
<script>
var demo = 'X1'
alert(demo);
$( document ).ready(function() {
$("#cont").on("click","a", function ( e ) {
history.pushState({}, '', $(this).attr("href"));
$('body').load(this.href + " #bodyframe", function(){
});
event.preventDefault();
});
});
</script>
<body>
<div id="bodyframe">
page01<br><br>
<div id="cont"><a href="02.html">next page</a></div>
</div>
</body>
第02页
<script>
var demo = 'X2'
alert(demo)
</script>
<body>
<div id="bodyframe">
page02
</div>
</body>
当我运行第01页时,它会显示带有变量&#39; demo&#39;的警报。值,但是当我点击链接并加载第二页时,第二页不会显示警告。 总而言之,当我点击链接并从点击功能加载页面时,我需要运行页面02的脚本。
答案 0 :(得分:0)
这是因为您已分配Click事件的元素已被删除。它会随#cont
一起删除。
您应该委派来自正文的点击事件:
$("body").on("click","#cont a", function ( e ) {
<强>更新强>
您似乎只使用正在加载的#bodyframe
部分。你应该加载它而不是获取脚本(因为它在体框外)
$('body').load(this.href, function(){
答案 1 :(得分:0)
第02页的javascript中有错误。您忘记用分号(;)关闭两行代码。这就是加载页面02时未显示警报的原因。
<script>
var demo = 'X2';
alert(demo);
</script>
<body>
<div id="bodyframe">
page02
</div>
</body>