我有一个foreach
循环,显示一些db
条目。
在每个条目中,我都有一个启用bootstrap's modal
的删除按钮。
我可以取消删除过程并隐藏模态。问题是,如果我取消并继续删除其他条目,click
事件将与之前取消的点击一起触发。
('.removeProperty').on('click',function(){
var id = $(this).parents('.propertyIdSelect').attr('id');
var $this= $(this);
$this.parents('.propertyIdSelect').css('opacity','0.5');
$('#confirmRemove').on('hidden.bs.modal', function() {
$this.parents('.propertyIdSelect').css('opacity','1');
});
$('.removeButton').click(function(){
removeProperty(id,$this);
});
});
我希望隐藏模态时
$('#confirmRemove').on('hidden.bs.modal', function() {
$this.parents('.propertyIdSelect').css('opacity','1');
});
重置点击事件。
更新
出于某种原因,我需要一些解释,我通过改变这个来完成这项工作
$('#confirmRemove').on('hidden.bs.modal', function() {
$this.parents('.propertyIdSelect').css('opacity','1');
});
到这个
$('#confirmRemove').unbind('click').on('hidden.bs.modal', function() {
$this.parents('.propertyIdSelect').css('opacity','1');
});
和这个
$('.removeButton').click(function(){
removeProperty(id,$this);
});
到这个
$('.removeButton').unbind('click').click(function(){
removeProperty(id,$this);
});
答案 0 :(得分:1)
使用one()
代替on()
- 使用one()
时,处理程序会在第一次触发时自动反弹。
$('#confirmRemove').one('hidden.bs.modal', function() {
$this.parents('.propertyIdSelect').css('opacity','1');
});