我想从requirejs版本2.0.0升级到2.1.5
以下是代码:
define(['jquery', 'test.js'],
function ($, test) {
var test = new $.test({
//options
});
....
});
test.js
(function($) {
var registerEvents = function() {
//dosth
};
$.test = function(options) {
$(document).bind('ready', function() {
registerEvents();
});
...
return test;
}
...
});
在版本2.0.0中,requirejs保存dom ready事件,直到所有资源都被下载,因此它正常工作https://github.com/jrburke/requirejs/issues/249
当我升级到requirejs版本2.1.5时,将永远不会调用registerEvents函数。
但令人沮丧的是,如果我改变:
$(document).bind('ready', function() {
registerEvents();
});
要:
$(document).ready(function() {
registerEvents();
});
工作正常
所以我的问题是:它们之间有什么区别?
编辑:我正在使用jQuery v1.7.2
$(document).on(' ready',function(){})无法正常工作
答案 0 :(得分:9)
区别在于the docs say
还有$(document).on(&#34; ready&#34;,handler),从jQuery 1.8开始不推荐使用。这与ready方法的行为类似,但如果ready事件已经触发并且您尝试.on(&#34; ready&#34;)将不会执行绑定处理程序。< / strong>以这种方式绑定的就绪处理程序在被上述其他三种方法绑定后执行。 [em mine]
.bind
和.on
行为相似。
这是
之间的唯一区别$( document ).ready( handler )
$().ready( handler ) // (this is not recommended)
$( handler )
和
$( document ).on( "ready", handler )
$( document ).bind( "ready", handler )
文档中提及的内容,因此我猜测是您问题的最可能来源