当前位置:   article > 正文

html中提交时移除事件,javascript – jQuery – 如何删除.submit()和.focus()事件

submit关闭界面focus

每次打开弹出窗口时都会调用保存这些事件的函数

我有一个功能,我需要在页面上多次调用.该函数包含一些.on(“click”,函数….事件.

为了不让我不断添加越来越多的点击事件到我在每个.on之前的相同元素(“点击”,用.off(“点击”,这是我理解的)是正确的处理方式这个?

我的功能还有以下几点:

$( “#myForm会”).提交(函数(E){…

和…

$( “#myTextArea”).重点(功能(E){…

我的问题是:

我是否需要“取消绑定”(因为缺少一个更好的词).submit和.focus函数的方式与我执行“click”函数的方式相同,以便在每次调用函数时停止这些事件乘以这些元素?

而且,如果我这样做,这样做的正确方法是什么?

非常感谢

约翰 :-)

**更新**

我已根据要求提供了更多细节.

我的页面包括由3个独立按钮启动的3个弹出窗口.弹出窗口的起点只有一个“loading.gif”.当单击每个按钮时,我测试以查看窗口中的“loading.gif”是否处于活动状态,如果是,则使用ajax请求来获取该窗口的正确HTML.

一旦我的ajax请求返回HTML,我将它附加到窗口然后调用此函数将事件绑定到相关的按钮/表单等.

如果他们然后关闭该窗口并打开其他弹出窗口之一,我需要重新调用该函数,因此要确保我不会将每个HTML元素的事件加倍.因此,我先把事件.off转回来.然后把它们放回去.

希望澄清问题背后的推理,但随时可以询问是否不清楚.我也认为谨慎地指出我是jQuery的新手(实际上是javascript),所以这当然不一定是实现此功能的最佳/唯一方式.这只是在编写代码时对我有意义的方式.

最初我有预先填充HTML但是隐藏的弹出窗口,但我发现我的页面大小非常大,我希望改善加载时间等.

解决方法:

你可以按照自己的方式行事.您还可以使用jQuery委派系统.

示例:

你有一个div(我们称之为#test)并在其中添加一些按钮.您删除按钮,再次添加它们…但您想绑定它们上的单击事件.你可以这样做 :

$('#test').on('click', 'button', function(event) {

// Do what you want. this == the clicked button

$(this).css('background-color', 'red');

});

解释:

click事件在#test上绑定,但jQuery将针对css选择器按钮测试单击的目标.这将是点击的目标(而不是#test).这样,您只需创建一次单击侦听器,并且每次创建按钮时都不必添加/删除它.

标签:javascript,jquery

来源: https://codeday.me/bug/20190724/1527408.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/574023
推荐阅读