проблема с добавлением новых ULS - PullRequest
1 голос
/ 19 июня 2011

У меня есть база данных с категориями, использующими вложенные множества.

У меня есть функция, которая должна перечислять все категории на один уровень ниже определенной категории.

при загрузке документаСтартовая категория "1".это работает.но когда я нажимаю на элемент списка - чтобы сделать то же самое с этим идентификатором элементов в качестве начальной точки, ничего не происходит.данные передаются в документ, но jquery не может добавить элементы списка к созданному адресу.

<!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>

Я надеюсь, что кто-нибудь может помочь.Спасибо!

1 Ответ

0 голосов
/ 19 июня 2011

Мне кажется, я вижу пару проблем.

Сначала вы берете идентификатор у элемента li:

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

... передавая его auflisten:

function auflisten(start) {

... присвоение этого идентификатора элементу ul:

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

Так что теперь может показаться, что у вас есть 2 элемента с одинаковым идентификатором, которыйнедопустимо.

Таким образом, представляется вероятным, что при попытке выбрать новый элемент ul из DOM с использованием этого идентификатора произойдет сбой:

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

СекундаКажется, вы используете числовые идентификаторы.Это недопустимо в HTML4 и может вызвать аналогичные проблемы выбора.

...