jQuery .load函数使脚本只执行一次

问题描述 投票:1回答:2

我正在尝试使用jQuery的.load函数将div元素从一个页面加载到另一个页面。但它使整个脚本只运行一次。

我在这里看到了一些类似的问题,但这些似乎都不适合我的问题。我尝试过将.click改为.one以及添加new Date().getTime()$.ajaxSetup({cache: false})以防止兑现等事情。没有这些工作。

我不确定问题是什么,但它似乎只有在我使用.load函数时才会发生。我在下面附上了我的script.js文件的简化版本:


的script.js

$(function() {
    $("a").click(function(e) {
        var url = $(this).attr("href");

        $("body").load(url + " .container");
        e.preventDefault();
    });
});

的index.html

<!DOCTYPE html>
<html>
<head>
    <title>Index page</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
    <div class="container">
        <h2>This is the index page</h2>
        <a href="index.html">Index page</a>
        <br>
        <a href="second.html">Second page</a>
    </div>
    <script src="script.js"></script>
</body>
</html>

second.html看起来与index.html文件非常相似。

javascript jquery ajax html5
2个回答
0
投票

你的事件处理程序只绑定到第一页上的锚点,我会使用事件委托,这样每次加载新页面时我都不必绑定处理程序。

$(document).on('click', 'a', function(e){
    var url = $(this).attr("href");

    $("body").load(url + " .container");
    e.preventDefault();
});

0
投票

我有同样的问题。我在load()之后再次调用Javascript解决了这个问题。这是片段

$.getScript('<your script>');
© www.soinside.com 2019 - 2024. All rights reserved.