首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery:匿名函数

jQuery:匿名函数
EN

Stack Overflow用户
提问于 2013-11-01 00:20:37
回答 3查看 2.1K关注 0票数 1

首先,代码是有效的,但在我看来并不理想。

我喜欢Javascript中的匿名函数。因此,在注册onclick处理程序时,我可以使用匿名函数:

代码语言:javascript
复制
$(function()){
  $(".foo").on("click", function() {
     ..
  });
}

但有时,我意识到我需要调用函数也是onReady。因此,我可以将代码转换为:

代码语言:javascript
复制
$(function()){

  function bar() { .. }

  $(".foo").on("click", bar);

  bar(); //'onload'
}

但这是一项很大的工作!(懒惰是程序员的一个好特点)。我必须创建一个非匿名函数,更改onclick注册等。是否可以保留匿名功能?

在理想的情况下,我有这样的想法:

代码语言:javascript
复制
$(function()){
  $(".foo").on("click onDomLoaded", function() {
     ..
  });
}

但这不管用。

(我看到的唯一选项是扩展'on‘函数,但这似乎很难看)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-09-04 20:35:58

@tymejV的想法很接近,但我可能会产生一些意想不到的副作用--例如,已经有限制的单击事件。幸运的是,“同名事件”在jQuery中解决了这个问题:

代码语言:javascript
复制
$(function()){
  $(".foo").on("click load.somenamespace", function() {
     ..
  }).trigger("load.somenamespace");
}
票数 0
EN

Stack Overflow用户

发布于 2013-11-01 00:24:51

您可以在加载时添加.click()尾随以触发:

代码语言:javascript
复制
$(".foo").on("click", function() {
 ..
}).click(); //trigger on load
票数 0
EN

Stack Overflow用户

发布于 2013-11-01 12:31:14

试试这个可能对你有帮助。

代码语言:javascript
复制
$(function()){


  $(".foo").on("click", function(){ bar();});

  bar(); //'onload'
}

function bar() { .. }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19718883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档