如何删除$(document).on点击事件?

Siv*_*iva 3 javascript jquery

这是添加事件的代码

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

对于某些情况,我不希望触发此事件.所以我尝试的是

$('.form-template-name').off();
$('.form-template-name').unbind();
Run Code Online (Sandbox Code Playgroud)

但似乎没有任何效果.我错过了什么吗?

Aru*_*hny 12

您需要将事件传递给取消绑定到.off(),还可以看到使用namepsaced事件名称

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

$(document).off('click.myevent', '.form-template-name');
Run Code Online (Sandbox Code Playgroud)

演示:小提琴