html構造:
<div class="row">
<div class="span"></div>
<div class="span"></div>
<div class="navMenu">
<ul>
<li><a href=#">Link 1</a></li>
<li><a href=#">Link 1</a></li>
</ul>
</div>
</div>
次に、上記のhtmlの直後に「新しい」divを追加します。
<div class="row">
<div class="span"></div>
<div class="span"></div>
<div class="navMenu">
<ul>
<li><a href=#">Link 1</a></li>
<li><a href=#">Link 1</a></li>
</ul>
</div>
</div>
<div class="new"></div>
$(".navMore li a").each(function() {
$(this).on("click", function() {
$('<div class="new"></div>').insertAfter($(this).closest('.row'));
$('<div class="span"></div>').appendTo('.new');
});
});
最後に.new
、メニューを含むdivの直後にクラスのあるdivが存在するかどうかを確認する必要があります。存在する場合は、その中にdivを追加し、.span
クラスのあるdivが.new
存在しない場合は、それを作成してから、クラスのあるdivを挿入します.span
。それ:
$(".navMore li a").each(function() {
$(this).on("click", function() {
if($(this).next().hasClass("new")){
$('<div class="span"></div>').appendTo('.new');
}
else {
$('<div class="new"></div>').insertAfter($(this).closest('.row'));
$('<div class="span"></div>').appendTo('.new');
}
});
});
.new
クラス付きの新しいdivが、メニューのdivコンテナのすぐ隣にあるそのようなクラスを持つdivであることが重要です。その理由は、私は多くの異なるdivを持つ多くのメニューを.row
作成するため、正しいものをターゲットにしたかったからです。
上記の最終的なコードは機能しません