Jquery问题崩溃了div

时间:2011-03-03 10:06:11

标签: jquery

请参阅此http://jsfiddle.net/yv8uw/1/

当您点击“查看所有评论”时,该框会打开正确....但是当您再次点击时,它不会像预期那样折叠...请帮助。

4 个答案:

答案 0 :(得分:2)

尝试将点击处理程序更改为直播活动。

试试这个:http://jsfiddle.net/yv8uw/5/

通常,当您使用.bind()或其中一个快捷方式(如.click())攻击事件处理程序时,您只会将事件附加到调用.bind或.click方法时找到的元素。 jQuery中的实时事件以不同的方式工作,您可以使它适用于尚未存在于DOM中的元素(或者尚未包含类的元素,如您的示例中所示)。阅读live events中的jQuery API docs

答案 1 :(得分:2)

为您添加:)

使用选项

$(“。toggle_comment_full”)。live(“click”,function(){...

然后回来 $( “toggle_comment_small ”)。生活(“ 点击”,函数(){

答案 2 :(得分:2)

我建议您使用切换功能,这将简化您的条件:

删除您的点击功能,试试这个:

$(".toggle_comment_full").toggle(function(){
    var sc= $(this).parents("div:eq(1)").find(".status_comments");
    sc.animate({
        height: sc.find("table").height()
    },1000);
},function(){       
    var sc= $(this).parents("div:eq(1)").find(".status_comments");
    sc.animate({
        height: sc.find("tr:eq(0)").height()+sc.find("tr:eq(1)").height()
    },1000);  
});

我尝试了这个,它可以正常工作

答案 3 :(得分:0)

您将事件绑定到不存在的元素

// .toggle_comment_small does not exist at the time of binding
$(".toggle_comment_small").click(function(){

要将事件绑定到动态生成的元素,请使用live()

$(".toggle_comment_small").live('click', function(){

Example.