0

这是我用于部分更新页面的简单 jQuery 函数

 <script type="text/javascript">
$(document).ready(function () {
    $("#prevlinkh").click(function () {
        var pagenumber = $("#prevlinkh").attr("pn");
        $("#filelist").load('/uploads/<%=FileCategoryName %>/' + pagenumber + " #filelist>*", "");
        return false;
    });

    $("#nextlinkh").click(function () {
        var pagenumber = $("#nextlinkh").attr("pn");
        $("#filelist").load('/uploads/<%=FileCategoryName %>/' + pagenumber + " #filelist>*", "");
        return false;
    });
}); 
</script>

它被调用

<a id="prevlinkh" pn="10" href="/uploads/All/10">Previous</a>
<a id="nextlinkh" pn="12" href="/uploads/All/12">Next</a>

以上链接位于部分更新的 div (文件列表)中。

问题是 ajax 请求适用于第一个请求,但不适用于第二个请求。第二个请求被称为正常链接点击。据我了解,新加载的下一个和上一个链接有些无法进入 DOM。

如何更改此设置,以便在第二次调用 ajax 请求时单击下一个/上一个链接。我希望我的问题足够清楚

4

2 回答 2

2

最简单的方法之一是使用 jQuery 的live()函数:

 <script type="text/javascript">
$(document).ready(function () {
    $("#prevlinkh").live('click',function () {
        var pagenumber = $("#prevlinkh").attr("pn");
        $("#filelist").load('/uploads/<%=FileCategoryName %>/' + pagenumber + " #filelist>*", "");
        return false;
    });

    $("#nextlinkh").live('click',function () {
        var pagenumber = $("#nextlinkh").attr("pn");
        $("#filelist").load('/uploads/<%=FileCategoryName %>/' + pagenumber + " #filelist>*", "");
        return false;
    });
}); 
</script>

还有使用的选项delegate(),它可能更适合您的需求,但我不完全确定。

于 2010-10-17T21:20:09.750 回答
1

问题是您在文档加载时绑定了单击事件。然后,当元素被替换时,它们被重新加载,没有任何绑定。您可以重新绑定它们,或者使用 jQuery 的 live() 方法。

http://api.jquery.com/live/

于 2010-10-17T21:18:46.113 回答