当前位置: 首页 > 知识库问答 >
问题:

jQuery:删除特定的单击处理程序,保留其他处理程序

凌声
2023-03-14

我有一个包含一些字段的表单,每个字段都绑定了一些click事件(与此功能无关)。

我必须添加另一个到每个字段,以显示一个模态在第一次点击他们中的任何一个,并且只在第一次点击。

我想的是这样的:

    $('.field').on('click',function(){
        $('#modal').modal();
        $('.field').off('click');
    });

其思想是,在第一次单击之后,.off()方法将从所有.field元素中删除“click handlers”。

如果不存在其他引用的“点击处理程序”,那就太好了,因为这样我就把它们全部删除了。

我需要从所有字段中只删除这个特定的“单击处理程序”,保留其他字段,这样,模式窗口应该只在第一次单击任何表单字段时出现,而在单击下一个字段时再也不会出现。

拜托,怎么办?

共有1个答案

司空学智
2023-03-14

创建一个函数,该函数在被调用后将自身从处理程序中删除

function showModalOnlyOnce(){
  console.log("Show modal") ;
  $('.field').off('click',showModalOnlyOnce);
}

并使用on分配该值

$('.field').on('click',showModalOnlyOnce);

这不会影响其他click处理程序,如下段所示。总是写入“Ive been clicked”消息,但“show modal”消息只显示一次

null

function showModalOnlyOnce(){
  console.log("Show modal") ;
  $('.field').off('click',showModalOnlyOnce);
}


$('.field').on('click',function(){
    console.log("Ive been clicked");   
});

$('.field').on('click',showModalOnlyOnce);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" class="field">
<input type="text" class="field">
<input type="text" class="field">
<input type="text" class="field">
 类似资料:
  • 问题内容: 我试图在Go中启动一个HTTP服务器,该服务器将使用自己的处理程序来提供自己的数据,但与此同时,我想使用默认的http FileServer来提供文件。 我在使FileServer的处理程序在URL子目录中工作时遇到问题。 该代码不起作用: 我期望在localhost:1234 / files /中找到本地目录,但是它返回一个。 但是,如果我将文件服务器的处理程序地址更改为/,它将起作

  • 我在页面上有输入字段和提交按钮。 这里是jQuery代码: 我想防止模糊,如果从输入字段点击提交div,但想允许它,如果从输入字段点击页面的其他部分。我无法使用“提交”按钮。 我已竖起了小提琴。净/405kzboh/1 但是现在我甚至不明白为什么点击事件没有在模糊事件之前触发,如果有人从输入点击提交!

  • 问题内容: 我有一个React组件,可以在其中遍历列表并创建行。每行中都有一个删除按钮。单击删除按钮后,我想将引用传递给该行中的元素。 因此,为了在点击处理程序中保留this值;我对map()和click-handler都使用bind。 这是将参数传递给React中的处理程序的正确方法还是有更好的方法? 问题答案: 我现在还很陌生,但我想我可以把它扔在这里以提供帮助。 我认为您需要更改此行, 至

  • 它只会创建错误或重写现有文件。 TLDR:我如何让我的注释处理器编辑另一个注释处理器生成的文件?

  • 我有一个具有多个节点的Hazelcast集群,每个节点都由一个“守护进程”服务器进程的相同实例组成。这些守护进程是带有嵌入式Hazelcast缓存以及构成我的平台核心的逻辑的Java应用程序。我需要将平台上的某些事件分发给集群中的侦听器,这些侦听器可以驻留在任何(或所有)连接的节点中。从我阅读的文档来看,如果我在守护进程启动时将EntryEventListener附加到映射,那么每当该映射中发生事

  • 我有一个删除超链接 和Jquery函数 代码的其他部分可以访问并确保密码字段是必需的和全部。但是来自同一HTML页面的无法访问该函数并返回确认。 我可以从Chrome控制台调用Jquery函数并得到弹出和确认,但我的href无法调用它,它在没有确认的情况下处理删除。