以前点击的项目被模态删除
Previously clicked items being removed by modal
我有一个允许我删除 .item
.
的模式
一旦我点击一个项目,模式就会出现,我可以 select "confirm" 或 "cancel"。如果我 select 取消多个项目,然后取消一个项目 select "confirm",所有之前点击的项目都将被删除。
我怎样才能避免这种情况?
我试过在模态打开函数中将变量item
设置为null
,然后直接重置变量,但是没有用。
$(function() {
var modal = $('.modal');
$(document).on('click', '.item', function() {
var item = $(this);
var text = item.text();
modal.show();
modal.find('.modal-header').text('Are you sure you want to remove "' + text + '"?');
$(document).on('click', '.modal-save', function() {
item.remove();
modal.hide();
});
});
$(document).on('click', '.modal-close', function() {
modal.hide();
});
});
.modal {
display: none;
background: rgba(0, 0, 0, 0.5);
}
.item-container {
background: #eee;
width: fit-content;
padding: 10px;
}
.item {
width: 100px;
text-align: center;
padding: 5px;
border: 1px solid #ccc;
margin: 5px 0;
cursor: pointer;
}
.item:hover {
background: #bbb;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="item-container">
<div class="item">one</div>
<div class="item">two</div>
<div class="item">three</div>
<div class="item">four</div>
</div>
<div class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"></h5>
</div>
<div class="modal-footer">
<button type="button" class="btn modal-close">Cancel</button>
<button type="button" class="btn modal-save">Confirm</button>
</div>
</div>
</div>
</div>
用空值初始化并在模式关闭时将其设置为空值。
$(function() {
var modal = $('.modal');
var item = null;
$(document).on('click', '.item', function() {
item = $(this);
var text = item.text();
modal.show();
modal.find('.modal-header').text('Are you sure you want to remove "' + text + '"?');
$(document).on('click', '.modal-save', function() {
item.remove();
modal.hide();
});
});
$(document).on('click', '.modal-close', function() {
item = null;
modal.hide();
});
});
.modal {
display: none;
background: rgba(0, 0, 0, 0.5);
}
.item-container {
background: #eee;
width: fit-content;
padding: 10px;
}
.item {
width: 100px;
text-align: center;
padding: 5px;
border: 1px solid #ccc;
margin: 5px 0;
cursor: pointer;
}
.item:hover {
background: #bbb;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="item-container">
<div class="item">one</div>
<div class="item">two</div>
<div class="item">three</div>
<div class="item">four</div>
</div>
<div class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"></h5>
</div>
<div class="modal-footer">
<button type="button" class="btn modal-close">Cancel</button>
<button type="button" class="btn modal-save">Confirm</button>
</div>
</div>
</div>
</div>
我有一个允许我删除 .item
.
一旦我点击一个项目,模式就会出现,我可以 select "confirm" 或 "cancel"。如果我 select 取消多个项目,然后取消一个项目 select "confirm",所有之前点击的项目都将被删除。
我怎样才能避免这种情况?
我试过在模态打开函数中将变量item
设置为null
,然后直接重置变量,但是没有用。
$(function() {
var modal = $('.modal');
$(document).on('click', '.item', function() {
var item = $(this);
var text = item.text();
modal.show();
modal.find('.modal-header').text('Are you sure you want to remove "' + text + '"?');
$(document).on('click', '.modal-save', function() {
item.remove();
modal.hide();
});
});
$(document).on('click', '.modal-close', function() {
modal.hide();
});
});
.modal {
display: none;
background: rgba(0, 0, 0, 0.5);
}
.item-container {
background: #eee;
width: fit-content;
padding: 10px;
}
.item {
width: 100px;
text-align: center;
padding: 5px;
border: 1px solid #ccc;
margin: 5px 0;
cursor: pointer;
}
.item:hover {
background: #bbb;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="item-container">
<div class="item">one</div>
<div class="item">two</div>
<div class="item">three</div>
<div class="item">four</div>
</div>
<div class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"></h5>
</div>
<div class="modal-footer">
<button type="button" class="btn modal-close">Cancel</button>
<button type="button" class="btn modal-save">Confirm</button>
</div>
</div>
</div>
</div>
用空值初始化并在模式关闭时将其设置为空值。
$(function() {
var modal = $('.modal');
var item = null;
$(document).on('click', '.item', function() {
item = $(this);
var text = item.text();
modal.show();
modal.find('.modal-header').text('Are you sure you want to remove "' + text + '"?');
$(document).on('click', '.modal-save', function() {
item.remove();
modal.hide();
});
});
$(document).on('click', '.modal-close', function() {
item = null;
modal.hide();
});
});
.modal {
display: none;
background: rgba(0, 0, 0, 0.5);
}
.item-container {
background: #eee;
width: fit-content;
padding: 10px;
}
.item {
width: 100px;
text-align: center;
padding: 5px;
border: 1px solid #ccc;
margin: 5px 0;
cursor: pointer;
}
.item:hover {
background: #bbb;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="item-container">
<div class="item">one</div>
<div class="item">two</div>
<div class="item">three</div>
<div class="item">four</div>
</div>
<div class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"></h5>
</div>
<div class="modal-footer">
<button type="button" class="btn modal-close">Cancel</button>
<button type="button" class="btn modal-save">Confirm</button>
</div>
</div>
</div>
</div>