禁用并启用单击处理程序

时间:2014-11-24 16:57:38

标签: javascript jquery html-table

我有这段代码:

jQuery(".view-kems-tickets-calendar td.single-day").not(".no-entry, .empty").click(function() {
  jQuery(".all-day-items", this).slideDown("slow");
  jQuery(this).off("click");
});

jQuery(".view-kems-tickets-calendar .close-all-day").click(function() {
  jQuery(".all-day-items").slideUp("fast", function() {
  });
});

它是做什么的:它使可点击的td.single-day显示.all-day-items类元素,其中存在于此td标记中。 .all-day-items元素包含.close-all-day元素,该元素关闭先前打开的.all-day-items元素。问题是,当我同时点击.close-all-day元素时,我点击了td.single-day,所以它会关闭并再次打开。我把这一行:

jQuery(this).off("click"); 

禁用它,但如何在完整功能中再次激活它?我尝试了几种方法,但它总是像以前一样(它关闭并再次打开.close-all-day元素)。

这是怎么回事::)代码: http://codepen.io/anon/pen/GgJZOp

1 个答案:

答案 0 :(得分:1)

也许这会对你有所帮助:

jQuery(".view-kems-tickets-calendar td.single-day").not(".no-entry, .empty").click(function(e){
    if(!$(e.target).is('.close-all-day')){
        jQuery(".all-day-items", this).slideDown("slow");
    }
});