0

你能帮我解决这个问题吗?

我有一个显示“新闻”的本地网站。第一次加载页面时会显示最新的新闻,但只有当访问者单击名为#oldnews 的链接时才会加载较旧的新闻:

$('#oldnews').load('ajax/older_news.php');

“older_news.php”文件在加载后有另一个链接,用于隐藏这些旧新闻。但是,此链接不起作用。

处理这种“隐藏”机制的 jQuery 代码在主页中,所以我的猜测是 jQuery 不会隐藏新闻,因为它不知道链接存在(因为它仅在用户单击链接时加载) .

有关解决此问题的更好方法的任何见解?谢谢你。

4

1 回答 1

2

2 件事。正如评论中指出的那样,您可以使用.delegate. 在新版本的 jQuery (1.7+) 中,这非常简单。

$(function() {  //  good old $(document).load(function(){ //shorter!
    //  use document to asign delegation
    //      asign an event like "click" or "keyup"
    //          asign a selector like "#elementID" or ".element-class-name" or even just "ul li"
    $(document).on("event", "selector", function(e) {
        /*  DO WORK
                like any other event callback
        */
    })

    // for older versions of jQuery, use .delegate or .bind
    $(document).delegate("event", "selector", function(e) {  })
})

但是,不要忘记,.load它也有一个回调函数。因此,您可以执行以下操作:

$(function() {
    $('#oldnews').load('ajax/older_news.php', function(response, status, jqXHR) {
        $(".new-stuff:visible").hide();
    });
})
于 2013-06-19T17:25:54.747 回答