2013-02-15 56 views
1

我是一个jquery新手,想做个滑动表。 该orinal表具有3级:加载数据,插入后和滑动

<ul class="categories"> 
<li id="category1">1 element</li> //parentid=0 
<li id="category2">2 element</li> //parentid=0 
<ul> 
<li id="category3">1 element of element id2</li> //parentid=2 
<ul> 
<li id="category4">1 element id3</li> //parentid=3 
</ul> 
</li> 
</ul> 
</li> 
</ul> 

第一级元件已PARENTID = 0,ID = 1 ++,下一级嵌套parentId的并有自己的ID等。

只有1的parentid级负载= 0

<ul class="categories"> 
<li id="category1">1 element</li> //parentid=0 
<li id="category2">2 element</li> //parentid=0 
</ul> 

然后,我要点击李,采取ID ID - 去文件,执行mysql的,得到新表中的变量,把它在LI下滑动并滑动。

PHP端

​​

这将返回我的ID,我需要回到列表和切换它。

现在新的UL连接,但我jquery不能使用它,更新脚本与下面的,但仍然不能。

修订版的JQuery

$(".tablecategoryname").on('click', function(){ 
    var $a = $(this).closest('li').attr('id'); 
    var $c = $(this).closest('li'); 

    $.ajax({ 
     type: "POST", 
     url: "functions.php", 
     data: {subcategory:$a}, 
     cache: false, 
     success: function(data) 
     { 
      $(data).hide().insertAfter($c).slideDown(400); 
     } 
    });  
}); 
+0

$(” #1里“)附加( '

  • 血乳酸血乳酸
  • ');? – vodich 2013-02-15 13:53:01

    +0

    那不是这么简单:) – mozg 2013-02-15 14:23:44

    回答

    0

    ID的不应该只包含一个数字(或以数字开头),你应该使用#a1或类似的东西。在你发送一个对象的数据参数中,并且equalsigns不起作用。

    $(".table li").on('click', function(){ 
        var self = this; 
        $.ajax({ 
         type: "POST", 
         url: "functions.php", 
         data: {id : self.id}, 
         cache: false 
        }).done(function(data) { 
         //guessing you're returning valid HTML 
         $(data).hide().insertAfter(self).slideDown(400); 
        }); 
    }); 
    

    编辑:

    你build_category_tree()函数需要返回的HTML,所以你可以重复回Ajax请求:

    if(isset($_POST['subcategory'])){ 
        echo $subcategory = str_replace('category', '', $_POST['subcategory']); 
        $ULtree = build_category_tree($subcategory); // builds the UL tree 
        echo $ULtree; //echo back to Ajax 
    } 
    
    +0

    更新了这个问题,修正了id名字,需要接收函数数据并在li下切换它 – mozg 2013-02-15 14:23:20

    +0

    @mozg - 编辑我的答案我不知道你的函数是如何构建HTML的,但你需要来回显HTML,所以它可以作为ajax函数中的响应返回。 – adeneo 2013-02-15 15:01:32

    +0

    做到了这一点,它返回的数据,但jquery不适用于新插入的li,更新了我的脚本,但仍然无效,更新了我的脚本 – mozg 2013-02-15 15:16:47

    0

    你应该把一个ID在你的主ul要抓住他的父母,并且他们在主ul中切换列表。 。

    $( “ul.umenu> LI)。点击(函数(e)中{

    e.preventDefault(); 
    
        var element = $(this); 
    
        if (element.parent().find("ul").is(":visible")) { 
        } else { 
    
         $("ul.umain> li > ul").slideUp(); 
    
         element.parent().find("ul").slideToggle("fast"); 
    
        } 
    
    });