如何删除$(文档).单击事件

How to remove $(document).on click event?

本文关键字:事件 文档 单击 删除 何删除      更新时间:2023-09-26

下面是添加事件

的代码
   $(document).on({
      click: function() {
        $(this).hide();
        $('#form_name').removeClass('hide');
        $('#form_template_name')
          .attr('placeholder', $(this).text())
          .focus();
      }         
    }, '.form-template-name');

在某些情况下,我不希望触发此事件。所以我尝试的是

$('.form-template-name').off();
$('.form-template-name').unbind();

但是似乎什么都不起作用。我错过什么了吗?

您需要将事件传递给。off()来解除绑定,也可以参见使用命名空间事件名称

$(document).on({
    'click.myevent': function () {
        $(this).hide();
        $('#form_name').removeClass('hide');
        $('#form_template_name')
            .attr('placeholder', $(this).text())
            .focus();
    }
}, '.form-template-name');

$(document).off('click.myevent', '.form-template-name');

演示:小提琴

试试这个

$(document).off('click', '.form-template-name');

事件处理程序绑定到元素。您可以将事件处理程序与它所附加的元素解除绑定,但无法将其与后代元素解除绑定,因为后代元素不是它侦听的地方。

  1. 检查事件对象的target属性(事件处理函数的第一个参数),看看在做任何事情之前单击了什么元素,然后单击了return
  2. 将一个新的事件处理程序绑定到你想要阻止事件触发的元素,并防止事件继续在DOM中发生。

你可以试试:

var clickEvent = function() {
    $(this).hide();
    $('#form_name').removeClass('hide');
    $('#form_template_name')
      .attr('placeholder', $(this).text())
      .focus();
};
$(document).on({
   click: clickEvent         
}, '.form-template-name');

并使用:

解除绑定
$(document).unbind('click', clickEvent);

将点击处理程序更改为:

$(document).on({
    'click.myevent': function () {
        $(this).hide();
        $('#form_name').removeClass('hide');
        $('#form_template_name')
            .attr('placeholder', $(this).text())
            .focus();
    }
}, '.form-template-name');

则可以使用.off(),名称间隔为事件名称:

$(document).off('click.myevent', '.form-template-name');

试试这个:

$('.form-template-name').unbind("click"", event);

并定义click事件为:

var event = function() {
    $(this).hide();
    $('#form_name').removeClass('hide');
    $('#form_template_name')
      .attr('placeholder', $(this).text())
      .focus();
};

您也可以尝试使用event.preventDefault()功能。这里有更详细的描述:http://api.jquery.com/event.preventdefault/