从Ajax Post检索的数据上的Jquery切换失败

时间:2011-08-06 11:38:10

标签: jquery ajax

我正在尝试使用jQuery插件来实现展开所有Divs /折叠所有Divs /展开或折叠单个Div,这是Jquery插件:http://www.adipalaz.com/experiments/jquery/multiple_expand_all_collapse_all.html。唯一不同的是我试图将这些效果应用于从AJAX帖子中检索到的Div。

以下是我目前的流程:

将数据发布到url(getData.php)fromindex.php并检索Html DIVs->在Div上执行切换。 te DIV所需的CSS已经加载到Index.PHP上。

在索引页面上使用jquery和CSS将切换按钮附加到检索到的DIV。切换div所需的java脚本已存在于index.php页面上。但是切换按钮不会出现在检索到的div上,因为即使在检索内容之前它们也会被触发。我尝试使用ajaxStop,触发ajax完成,然后触发切换功能,但没有use.below是我的示例代码。

     $.ajax({
                                type: 'POST',
                                url: 'getTicketSummary.php', 
                                data: {ref_no: ref_no},
                                success: function(data) {
                                    $('#wrapper').hide().html(data).slideDown('slow');
                                    $(function() {
     $("#content h3.expand").toggler();
        $("#content div.demo").expandAll({trigger: "h3.expand", ref: "h3.expand"});
    });
                            }
                        });
                    }
                });

$(function() {
     $("#content h3.expand").toggler();
        $("#content div.demo").expandAll({trigger: "h3.expand", ref: "h3.expand"});
    });

//这是我的切换功能,因为我正在使用jquery插件expand.js,现在我尝试在Post请求之后添加该功能,但它似乎有效。

2 个答案:

答案 0 :(得分:1)

没关系,

我想通了。我使用$('#wrapper')。ajaxStop来触发ajax请求的完成并触发一个函数以在完成时启用切换。

我的代码是

    $.ajax({
                                type: 'POST',
                                url: 'getTicketSummary.php', 
                                data: {ref_no: ref_no},
                                success: function(data) {
                                    $('#wrapper').hide().html(data).slideDown('slow');
                                    $(function() {
     $("#content h3.expand").toggler();
        $("#content div.demo").expandAll({trigger: "h3.expand", ref: "h3.expand"});
    });
                            }
                        });
                    }
                });

$('#wrapper').ajaxStop(function() { 
     $("#content h3.expand").toggler();
        $("#content div.demo").expandAll({trigger: "h3.expand", ref: "h3.expand"});
    });

希望这可以帮助一些有类似问题的人,谢谢!

答案 1 :(得分:1)

以下代码就足够了

 $.ajax({
       type: 'POST',
       url: 'getTicketSummary.php', 
       data: {ref_no: ref_no},
       success: function(data) {
                $('#wrapper').hide().html(data).slideDown('slow',function(){
                  $("#content h3.expand").toggler();
                  $("#content div.demo").expandAll({trigger: "h3.expand", ref: "h3.expand"});
                });
       }
  });