强制jQuery就绪块在所有其他就绪块之后运行

在所有其他人都这样做之后,是否可以执行一个jQuery ready块。

我在我的母版页中有这个…

 $(document).ready(function() { $("input[type='text']:enabled:first", document.forms[0]).focus().select(); });  

这在我的其他页面之一……

  $(document).ready(function() { $('textarea.message-body').wysiwyg(); });  

我看到的问题是第一个块在第二个块之前执行,这导致tab键出现问题。 发生的事情是,当我按Tab键时,键盘焦点会转到浏览器中的地址栏。 我已经稍微更改了代码,以便在我的母版页中显示…

  $(document).ready(function() { var bodies = $('textarea.message-body'); if (bodies.length > 0) { bodies.wysiwyg(); } $("input[type='text']:enabled:first", document.forms[0]).focus().select(); });  

并完全取消另一个准备好的块。 这样做可以使Tab键正常工作,并将焦点设置到我的textarea上。

我宁愿在母版页中没有特定于页面的代码。

那么,有没有办法让我的文本框聚焦代码运行在所见即所得的代码之后?

$(window).load()函数在$(document).ready()之后触发

将自定义事件触发器添加到母版页:

  

并将其绑定到其他页面:

  

参考

  • jQuery特别活动……实际上,不是在现实生活中

  • 如何在JavaScript中创建自定义事件

  • JavaScript的AOP方面

这是我的解决方案。

在我的母版页中我有这个……

  

在我的详细页面中,我有这个……

  

那么只有你只在主页上注册一个document.ready(),然后让它根据变量执行代码? 这个解决方案不是那么优雅,但是对JavaScript线程同步的搜索并没有真正改变op。

您可以将母版页上的代码更改为:

  

并将此脚本放在您的页面中: