Qual é a diferença entre $(documento).bind ('ready', função) e $(documento).pronto (função () {})

quero actualizar a partir do requirejs versão 2. 0 para 2. 1. 5

Aqui está o código:

define(['jquery', 'test.js'],
    function ($, test) {
    var test = new $.test({
        //options
    });
    ....
});
Teste.js

(function($) {
    var registerEvents = function() {
        //dosth
    };
    $.test = function(options) {
        $(document).bind('ready', function() {
            registerEvents();
        });
        ...
        return test;
    }

    ...
});

na versão 2. 0, o requirejs mantém o evento DOM ready até que todos os recursos sejam transferidos, por isso funcionou correctamente https://github.com/jrburke/requirejs/issues/249

Quando actualizo para requerer a versão 2. 1. 5 do JS, a função registerEvents nunca será chamada.

Mas suplicando, se eu ... variação:

$(document).bind('ready', function() {
    registerEvents();
});

To:

$(document).ready(function() {
    registerEvents();
});

funcionou bem

Então a minha pergunta é: Qual é a diferença entre eles?

Editar: estou a usar o jQuery v1.7. 2

$(documento).on ('ready', function () {}) não funciona

Author: sharon, 2014-12-31

1 answers

A diferença é que os documentos dizem

Também há $(documento).on ("ready", handler), depreciado como jQuery 1.8. Isto se comporta de forma semelhante ao método pronto, mas Se o evento pronto já tiver disparado e você tentar .on ("ready") o manipulador ligado não será executado. os manipuladores prontos ligados desta forma são executados depois de qualquer ligação pelos outros três métodos acima. [15]} [em mine]

.bind e .on Porta-te bem. Similarmente.


Esta é a única diferença entre

$( document ).ready( handler )
$().ready( handler ) // (this is not recommended)
$( handler )

E

$( document ).on( "ready", handler )
$( document ).bind( "ready", handler )
Isso é mencionado nos documentos, por isso acho que é a fonte mais provável do seu problema.
 9
Author: blgt, 2014-12-31 10:02:16