2011-06-18 145 views
1

我有da數據庫使用嵌套集的類別。添加新UI的問題

我有一個函數,它應該列出某個類別下一個級別的所有類別。

當文檔加載時,起始類別爲「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:

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

...把​​它傳遞給auflisten

function auflisten(start) { 

...的那個ID分配給一個ul元素:

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

所以,現在看來你有2個元素具有相同的ID,這是無效的。

所以它很可能是當您嘗試使用該ID選擇從DOM中新ul元素,選擇將失敗:

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

其次,似乎你使用了數字標識。這在HTML4中無效,並可能導致類似的選擇問題。

+0

嗨帕特里克,這就是它!非常感謝你! benni –

+0

@Benjamin Birk:不客氣。 – user113716