Ранее я опубликовал похожий вопрос и получил несколько хороших предложений. После дальнейшего расследования я обнаружил, что поведение достаточно отличается, чтобы оправдать новый вопрос.
Я ищу предложения относительно лучшего способа отладки нечетного поведения jQuery.
Следующий пример кода работает как положено здесь при добавлении к ul либо по идентификатору, либо по ссылке на класс.
<input type="submit" id="submitID" value="ID" />
<input type="submit" id="submitClass" value="Class" />
<ul id="myList" class="myClass">
<li>first list item</li>
<li>second list item</li>
<li>third list item</li>
</ul>
<script>
$('#submitID').click(function(){
$('#myList').append('<li>fourth list item</li>');
});
$('#submitClass').click(function(){
$('.myClass').append('<li>fourth list item</li>');
});
</script>
Однако в моем приложении я не могу добавить, используя ссылку #myList ID, и не могу понять, почему. Я динамически рендеринг элементов ul и li, и я попытался, как предлагалось, использовать следующий подход вместо события click:
<script>
$('#submitID').live('click', function(){
$('#myList').append('<li>fourth list item</li>');
});
$('#submitClass').live('click', function(){
$('.myClass').append('<li>fourth list item</li>');
});
</script>
В консоли FireBug я могу взаимодействовать с объектом, используя .myClass, но не #myList. Например, набрав в консоли FireBug следующее:
>>$('#myList').hide()
не скрывает элемент #myList, как я ожидаю. Консоль просто возвращает [].
Любые предложения приветствуются.