ボタンのクリックで追加された div を削除するのに少し問題があります。
hide() を使用すると、審美的に正しい動作が得られますが、実際には新しい div が削除されません。これは、このデータが Web サービスに送信されるためです。
JQuery:
$('a.addListOVM').click(function(e){
e.preventDefault();
$('.addCardOVM').append('<div class="divform"><label>' + $('.my_select').find(':selected').val() + '</label>' + '<a class="removed" href="">-</a></div>');
$('.removed').click(function(e){
e.preventDefault();
$(this).closest('.divform').hide();
});
});
テンプレート HTML:
<div class="divform">
<select class="my_select" name="vlans_{$NetworkDTO->id}[]">
{foreach from=$arrNetworkDTO item=NetworkDTO name=arr}
<option class="addOvmCardList" value="{$NetworkDTO->name|escape}">{$NetworkDTO->name}</option>
{/foreach}
</select>
<a href="" class="addListOVM">+</a>
</div>
ボタン自体は動的に生成され(3行目を参照)、クリックすると、ウィンドウ全体を閉じずに特定の追加されたdivを削除し.remove()
たいhide()
.
だから、誰でも私に言うことができます:
hide() の代わりに remove() を使用すると、hide() のように個々の div を削除するのではなく、テンプレート ウィンドウ全体が閉じられるのはなぜですか。
追加された div の複数のインスタンスを作成したときに、.removed クリック ハンドラーが複数回呼び出されるのはなぜですか (2 つのインスタンスを作成する場合は、1 回ループするインスタンスを削除し、2 回ループするインスタンスを削除するなど)。
追加された div を実際に削除しながら、hide() の物理的な機能を取得するにはどうすればよいですか?
ありがとう