作者:Eliza | 来源:互联网 | 2023-05-28 20:11
如何解决《$(document).bind('ready',function)和$(document).ready(function(){})之间有什么区别》经验,为你挑选了1个好方法。
我想从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(){})不起作用
1> blgt..:
正如文档所说,不同之处在于
还有$(document).on("ready",handler),从jQuery 1.8开始不推荐使用.这与ready方法的行为类似,但如果ready事件已经触发并且您尝试.on("ready"),则不会执行绑定处理程序.以这种方式绑定的就绪处理程序在被上述其他三种方法绑定后执行.[我的]
.bind
和.on
表现相似.
这是唯一的区别
$( document ).ready( handler )
$().ready( handler ) // (this is not recommended)
$( handler )
和
$( document ).on( "ready", handler )
$( document ).bind( "ready", handler )
这是在文档中提到的,所以我猜你是最有可能的问题来源