2011-06-18 12 views
1

ネストされたセットを使用するカテゴリのデータベースがあります。新しいulsを追加する際の問題

私には、特定のカテゴリの1つ下のレベルのすべてのカテゴリを表示する機能があります。

ドキュメントが読み込まれるとき、開始カテゴリは「1」です。これは機能します。しかし、リストアイテムをクリックすると、このアイテムIDを出発点として同じことをするために、何も起こりません。データはドキュメントに渡されますが、jqueryは作成されたulにリスト項目を追加することができません。

<!DOCTYPE html> 
<html> 
<head> 
    <script type="text/javascript" src="JavaSkript/jquery-1.4.4.min.js"></script> 
    <style> 
     ul.kategorien{ background: #FECA40; float: left;} 
    </style> 
</head> 
<body> 
    <div id="kategorien_auflisten" style="background-color: #ffffff;"> 

    </div> 
    <div id="error"></div> 
</body> 
</html> 

<script type="text/javascript"> 
function auflisten(start) { 
    $("div#kategorien_auflisten").append("<ul class='kategorien' id='" + start + "'></ul>") 

    jQuery.getJSON("Datenbankabfragen/kategorien_auflisten.php", { 
     startknoten: start 
    }, function(data) { 
     if(data != "") { 
      $.each(data, function(i,data){ 
       $("ul#"+start).append("<li class='' id='" + data.Kategorie_Nr + "'>" + data.Name + "</li>"); 
      }); 
     } 
     else { 
      $("div#error").text("Die Kategorien können leider nicht aufgelistet werden."); 
     } 
    }); 
} 

$(document).ready(function() { 
    auflisten(1); 
}); 

$("li").live("click", function() { 
    auflisten($(this).attr("id")); 
}); 
</script> 

私は誰でも助けてくれることを願っています。 ありがとうございました!

答えて

0

私はいくつかの問題があると思います。

まず、あなたがli要素からIDを取っている:auflistenに渡す...

$("li").live("click", function() { 
    auflisten($(this).attr("id")); // ID of the <li> 
}); 

function auflisten(start) { 

を... ul要素にそのIDを割り当てます:

.append("<ul class='kategorien' id='" + start + "'></ul>") 

だから、あなたの同じIDを持つ2つの要素があり、無効です。

だから、それはあなたがそのIDを使用してDOMから新しいul要素を選択しようとすると、選択が失敗する可能性が高いようだ:

$("ul#"+start) // Trying to select based on a non-unique ID will cause problems. 

第二に、あなたが数値の使用しているようですID。これはHTML4では有効ではなく、同様の選択問題を引き起こす可能性があります。

+0

こんにちはパトリック、これでした!どうもありがとうございました! benni –

+0

@Benjamin Birk:ようこそ。 – user113716

関連する問題