0

一般来说,我对 JS、jQuery 和 JSON 很陌生,所以我在这里尝试做的事情可能有几处错误,而且我可能从根本上脱离了基础。无论如何,我想要做的是捕获页面上的所有链接点击,检索 JSON 响应,然后相应地更新页面。我的代码在页面最初加载时有效,但在我生成新内容后,新内容中的任何链接的行为都与原始链接不同。

$(function(){
    $('a').click(function(){
        event.preventDefault();
        var pageUrl = $(this).attr('href');
        $.getJSON(pageUrl, function (page){
            $('#pageData').slideUp(300, function(){
                $(this).html(page.block).css('margin-top', '10px').slideDown(300);
            });
        })
        .fail(function (){
            alert('fail no JSON');
        });
    });
});
4

1 回答 1

1

您需要使用事件委托,因为您可能必须处理动态元素

$(function(){
    $(document).on('click', 'a', function(event){
        event.preventDefault();
        var pageUrl = $(this).attr('href');
        $.getJSON(pageUrl, function (page){
            $('#pageData').slideUp(300, function(){
                $(this).html(page.block).css('margin-top', '10px').slideDown(300);
            });
        })
        .fail(function (){
            alert('fail no JSON');
        });
    });
});
于 2013-08-02T02:32:02.257 回答