2
$(document).ready(function(){
    var links = $('body').find('a.internal');

    links.on('click', function(e){
        //pull page with ajax and replace the content with this response

        //replace current links, as some are added from ajax response
        links = $('body').find('a.internal');

        e.preventDefault();
    })
});

我猜因为只有一个links.on()当文档准备好时只有一个被调用,它永远不会“更新”任何可能创建的新链接。在我的 ajax 调用之后,我将如何重置这个活页夹?

感谢您及时的回复。那成功了!

4

4 回答 4

5

你要这个:

$('body').on('click', 'a.internal', function(e){
    //pull page with ajax and replace the content with this response

    //replace current links, as some are added from ajax response
    links = $('body').find('a.internal');

    e.preventDefault();
})

这会将单击事件附加到主体并在 a.internal 上进行过滤。如果将任何新链接添加到页面,这将起作用。

于 2013-10-10T18:42:16.187 回答
1

更好的方法是将绑定附加到正文并使用可选的选择器参数。

$(document).ready(function(){  
    $('body').on('click', 'a.internal', function(e){
        //pull page with ajax and replace the content with this response

        //replace current links, as some are added from ajax response
        links = $('body').find('a.internal');

        e.preventDefault();
    })
});
于 2013-10-10T18:43:35.217 回答
0

这个http://api.jquery.com/live/将处理与当前选择器匹配的所有元素,现在和将来

于 2013-10-10T18:44:54.263 回答
0

rojoca 的答案是正确的方法,但这确实是您所要求的:

function ajaxDone() {
    $('a.internal').unbind('click').bind('click', function(e){
        e.preventDefault();
    });
}
于 2013-10-10T18:50:14.133 回答