Учитывая следующую разметку:Добавление соседних узлов в список вложенных
<div id="nodes">
<ul>
<li><a href="#">Colors</a>
<ul>
<li><a href="#">Red</a></li>
<li><a href="#">Green</a></li>
<li><a href="#">Blue</a></li>
</ul>
</li>
<li><a href="#">Sizes</a></li>
<li><a href="#">Material</a></li>
</ul>
</div>
Я написал функцию JQuery, чтобы добавить одноуровневые узлы:
$("#nodes ul li").click(function(e) {
addSibling(this, 'new one');
e.stopPropagation();
});
function addSibling(selector, content){
var markup='<li><a href="#">' + content + '</a></li>';
$(selector).parent().append(markup);
}
Сначала кажется, отлично работает, до тех пор, как Я нажимаю на исходные узлы. Например, если я нажимаю на «Blue», я получаю:
<div id="nodes">
<ul>
<li><a href="#">Colors</a>
<ul>
<li><a href="#">Red</a></li>
<li><a href="#">Green</a></li>
<li><a href="#">Blue</a></li>
<li><a href="#">new node</a></li>
</ul>
</li>
<li><a href="#">Sizes</a></li>
<li><a href="#">Material</a></li>
</ul>
</div>
Однако, когда я нажимаю на новом узле, вместо того, чтобы новые узлы, как родной брат, он заканчивает один уровень вверх (То есть, брата «Цвета», «Размер» и «Материал»). Глядя на разметку, сгенерированную jQuery, я не вижу никакой разницы, поэтому я преувеличиваю, почему новые узлы действуют отличные от исходных. Благодарю.
Это сработало отлично! Благодаря! –
Вы очень желанны, я рад помочь! знак равно –