单击链接后运行脚本

时间:2016-01-31 17:43:14

标签: javascript jquery

我将在一个简单的例子中总结我的问题,我开始

我进行演示时有两个示例页面

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的脚本。

2 个答案:

答案 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>