仅点击一次点击事件

时间:2015-05-25 00:21:14

标签: jquery twitter-bootstrap

我有一个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);
});

1 个答案:

答案 0 :(得分:1)

使用one()代替on() - 使用one()时,处理程序会在第一次触发时自动反弹。

$('#confirmRemove').one('hidden.bs.modal', function() {
      $this.parents('.propertyIdSelect').css('opacity','1');
});