首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >绑定前执行、绑定后激发的事件

绑定前执行、绑定后激发的事件
EN

Stack Overflow用户
提问于 2017-03-06 15:58:03
回答 2查看 69关注 0票数 0

我在JQuery中遇到了一些奇怪的事件绑定问题。我们有很多输入,我们想知道它们的值是否被用户更改了。我将他们的事件附加到这些事件中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(document).on("change", ".myClass", changed);

但有时我们必须对这些字段执行自动更改,所以我解除了这些事件的绑定,执行更改并再次绑定事件,以避免在这些更新中触发更改:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(document).off("change", ".myClass");
$(".myClass").val(whatever);
$(document).on("change", ".myClass", changed);

但是,如果我们在最后一个过程之后单击其中一个输入,即使字段在更新时没有附加任何事件,也会触发change事件。我们知道,在字段失去焦点之前,change事件不会触发,但我们不理解这种行为。

任何帮助或澄清都将受到重视。

提前谢谢。

对不起,我的意思是更改而不是更改()。

EN

回答 2

Stack Overflow用户

发布于 2017-03-06 16:00:51

将第一行从

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(document).on("change", ".myClass", changed());

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(document).on("change", ".myClass", changed);

您正在调用方法changed()并提供来自changed()方法的返回值。

票数 1
EN

Stack Overflow用户

发布于 2017-03-06 16:01:09

带括号的函数名,如changed(),会立即调用该函数。这意味着第三个参数实际上是在传递changed函数的返回值。您应该将该行更改为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(document).on("change", ".myClass", changed);

现在,您的changed函数将仅在事件发生时触发。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42630059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文