簡體   English   中英

$(document).bind('ready',function)和$(document).ready(function(){})之間有什么區別

[英]What are the difference between $(document).bind('ready', function) and $(document).ready(function() {})

我想從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(){})不起作用

正如文檔所說 ,不同之處在於

還有$(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 )

這是在文檔中提到的,所以我猜你是最有可能的問題來源

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM