1

我正在发送 ajax 请求,并将结果附加到一个 div 上。在此附加之后,如果我想单击附加的链接(执行 jquery 单击功能),为什么单击功能不起作用?(抱歉英语不好:P)

编辑:

jQuery('.more').live("click",function() {
    var ID = jQuery(this).attr("id");
    if(ID) {
        jQuery("#more"+ID).html('<img src="template/css/images/moreajax.gif" />');
    jQuery.ajax({
        type: "POST",
        url: "loadmore.php",
        data: "lastid="+ ID, 
        cache: false,
        success: function(html){
            $("#contentWall").append(html);
        jQuery("#more"+ID).remove(); // removing old more button
        }
    });
    } else {
        jQuery(".morebox").html('The End');// no results
    }
return false;
});
4

3 回答 3

7

您需要使用.live()or .on(),这取决于您的 jQuery 版本才能正常工作。

常规.click()仅适用于当前在 DOM 中的元素,不适用于将来的添加。

于 2012-07-02T13:51:35.377 回答
0

没有更多信息很难确定,但可能你的问题是你正在使用这样的东西

// this only bind click handler to existing elements matching selector
$('#mycontainer a').click(function(){...}) 

并且您需要on用于覆盖动态添加的元素。

// this bind click handler to current and future elements matching selector
$('#mycontainer').on('click','a',(function(){...}) 
于 2012-07-02T13:51:49.077 回答
0

当您的页面最初加载时,您的点击事件将绑定到您的链接。这意味着之后引入 DOM 的任何新链接都没有绑定点击事件。您需要将 click 事件绑定到要附加的链接:

$(newlink).click(function(event){
    // your onclick code
});
$(mydiv).append(newlink);
于 2012-07-02T13:52:53.537 回答