私は、次のコードがあります:私はli
要素を削除し、それが#selected_conditions
で最後の一つだならば、#empty_msg
DIVからdisplay: none
を削除する必要があります小さなアイコン.delete_condition
をクリックするとDOM要素の削除時にDIVが表示されないため、DOM要素の削除について関数が認識していますか?
<ul class="ul" id="selected_conditions">
<li class="condition" data-field="asset_locations_name" data-condition="in">
<i class="fa fa-minus-circle delete_condition" aria-hidden="true" title="Click to remove this condition from the list"></i> WHERE asset_locations_name IN(
<span class="condition_item" data-id="1213381233">
<i class="fa fa-minus-circle delete" title="Click to remove this item from the list" aria-hidden="true"></i> 1213381233
</span>,
<span class="condition_item" data-id="1212371897">
<i class="fa fa-minus-circle delete" title="Click to remove this item from the list" aria-hidden="true"></i> 1212371897
</span>)
</li>
</ul>
<div id="empty_msg" style="display: none">
There is no conditions
</div>
を。これは私がそれをやっている方法です:
$(function() {
$('#selected_conditions').on('click', '.delete_condition', function() {
var condition = $(this).closest('.condition');
var conditions = $('#selected_conditions li');
$.confirm({
title: 'Confirm!',
icon: 'fa fa-warning',
closeIcon: true,
closeIconClass: 'fa fa-close',
content: 'This will remove the whole condition! Are you sure?',
buttons: {
confirm: function() {
condition.remove();
if (conditions.length == 0) {
$('#empty_msg').removeAttr('style');
}
}
}
});
});
});
それはli
が削除されますがconditions.length
まだ=1
以来#empty_msg
まで表示されません。私はChrome Consoleでコードをデバッグしていますが、それが結果です。理由はわかりません。
なぜですか?その要素が削除された関数またはDOMを知りませんか?どのように私はこの動作を修正することができますか?
多分私は何か間違っていると私は事を台無しにしている場所を見つけることができませんでした。
私はjQuery Confirmをダイアログに使用しています。
ここにはFiddleがあります。