2013-02-15 75 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"); 
    
        } 
    
    });