【问题标题】:jQuery dispatch event? How tojQuery调度事件?如何
【发布时间】:2010-11-29 22:23:42
【问题描述】:

我怎样才能在我的窗口准备好调度事件? 例如在我的代码中:

$("#info").click(function(){
// do stuff
});

我需要在第一次调用这个函数时不点击#info,顺便说一句 // 做事。

【问题讨论】:

  • 记得点击对你有帮助的答案旁边的勾。

标签: jquery events dispatch


【解决方案1】:

您可以使用.trigger() 方法:

$('#info').trigger('click');

或者简单地说:

$('#info').click();

这将是相同的。

【讨论】:

  • 避免不必要的事件链。如果应用程序很复杂,它最终会搞砸你。此事件将在 DOM 中一直冒泡,并可能导致其他功能出现问题。如果您只想在文档就绪时运行该方法,那么只需在文档就绪时运行它。如果你需要给它一个上下文,只需使用 apply。我要投反对票只是因为下面的答案已经死了。
  • 用CTRL点击这个触发器怎么样?
【解决方案2】:

更好的方法可能是创建一个执行所需内容的函数,然后执行 $(document).ready(myFunc);$("#info").click(myFunc);

【讨论】:

  • Big +1 人们似乎认为他们可以仅仅因为它是一个网络应用程序而放弃正确的设计。
  • @T.J. - 如果函数是在上下文是按钮的情况下编写的,那么触发事件可能会更容易且代码更少。
  • @Nick:如果代码要在多个上下文中运行(不仅仅是响应按钮单击),那么它应该是它自己的函数,并且从多个上下文中调用地点。我完全不确定使用click 触发它是否“更容易”,但即使是这样,恕我直言,这不是一个好主意。 (人们已经不时不同意我的观点。;-))
  • @Nick - 你是对的,这取决于具体情况。但是我们在这里有两个有用的答案,所以每个人都是赢家:)
  • 到目前为止更好的答案。有些人不明白将匿名函数变成命名函数很容易。避免不必要的事件链将为您省去很多麻烦。如果您需要更改上下文,只需使用应用调用。
猜你喜欢
  • 2015-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-12
  • 2021-11-20
相关资源
最近更新 更多