Каковы разница между $ (документом) .bind («готовая», функция) и $ (документ). Ready (функция (функция () {})) -- javascript поле с участием jquery поле с участием requirejs пол Связанный проблема

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


4
vote

проблема

русский

Я хочу обновить от Verysjs версии 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, TreeSJS удерживает событие DOM, пока все ресурсы не будут загружены, поэтому он работал правильно https://github.com/jrburke/requirejs/issues/249

Когда я обновляю до TreeJS версии 2.1.5, функция ReseereVents никогда не будет вызвана.

Но повыше, если я измените:

 <код> $(document).bind('ready', function() {     registerEvents(); });   

to:

 <код> $(document).ready(function() {     registerEvents(); });   

Это работало нормально

Так мой вопрос: какая разница между ними?

Редактировать: я использую jquery v1.7.2

$ (документ) .on («готов», функция () {}) не работает

Английский оригинал

I want to upgrade from requirejs version 2.0.0 to 2.1.5

Here is the code:

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;     }      ... }); 

In version 2.0.0, requirejs holds the dom ready event till all resources are downloaded, so it worked correctly https://github.com/jrburke/requirejs/issues/249

When I upgrade to requirejs version 2.1.5, the registerEvents function will never be called.

But supprisingly, if I change:

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

To:

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

It worked fine

So my question is: What are the difference between them?

Edit: I am using jQuery v1.7.2

$(document).on('ready', function(){}) not working

</div
        
     
     

Список ответов

9
 
vote
vote
Лучший ответ
 

Разница в том, что AS Документы говорят

Есть также $ (документ) .on («Готовый», Обработчик), устаревший как jQuery 1.8. Это ведет себя аналогично методу готовности, но , если готовое событие уже уволено , и вы пытаетесь .on («Готов») Ограниченный обработчик не будет выполнен. Готовые обработчики связаны таким образом, выполняется после любых связанных трех других способов выше. [Ем мой]

<Код> .bind и <код> .on ведут себя аналогично.


Это единственное различие между

 <код> $( document ).ready( handler ) $().ready( handler ) // (this is not recommended) $( handler )   

и

 <код> setenforce 00  

, который упоминается в документах, поэтому я предполагаю, что является наиболее вероятным источником вашей проблемы

 

The difference is, as the docs say

There is also $(document).on( "ready", handler ), deprecated as of jQuery 1.8. This behaves similarly to the ready method but if the ready event has already fired and you try to .on( "ready" ) the bound handler will not be executed. Ready handlers bound this way are executed after any bound by the other three methods above. [em mine]

.bind and .on behave similarly.


This is the only difference between

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

and

$( document ).on( "ready", handler ) $( document ).bind( "ready", handler ) 

that's mentioned in the docs, so I'm guessing is the most likely source of your issue

</div
 
 

Связанный проблема

0  Удалите подстроку из строки в jQuery [дублировать]  ( Remove a substring from a string in jquery ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> Этот вопрос уже есть ответы здесь : ...

0  .append () элемент с более чем одним классом  ( Append element with more than one class ) 
Я не могу найти информацию о том, можно ли использовать .append (), чтобы добавить элемент в HTML и дать этому элементу более одного класса <код> $( ".nav"...

0  Как закрыть всплывающее окно, когда видео YouTube играет на кнопке кнопки ESC?  ( How to close popup when youtube video is playing on esc button button ) 
Нажмите меня, чтобы увидеть демонстрацию Когда видео не играет, то кнопка ESC нажала всплывающее окно, но он не работает при воспроизведении видео. ...

0  Модель только показывает идентификатор в вложенной модели в парусах  ( Model only show id in nested model in sails ) 
Так что я разрабатываю приложение, используя парус JS. Я хочу отправить нить вместе с его комментариями как ответ. Вот моя модель thread.js <код> module...

1  Столбец Tabulator с JSX - выполнение функций класса  ( Tabulator column with jsx executing class functions ) 
Я пытаюсь использовать React-Tabulator, но у меня проблемы с рендером функции внутри моих столбцов таблицы. Функция возвращает JSX, но она использует другие к...

362  JavaScript Глобальный механизм событий  ( Javascript global event mechanism ) 
Я хотел бы поймать каждую неопределенную ошибку функции. Есть ли глобальная обработка ошибок в JavaScript? Чехол на использование ловит вызовы функций от Flas...

0  Команда STEART BOBLE не работает, когда добавляю новый файл JS  ( Stencil bundle command is not working when i add new js file ) 
Я добавил несколько файлов JS в моей теме (Track-CLI), а когда я запускаю stencil bundle COMMENT, ошибки JS получили бросок. Я пробовал удаление <код> app...

0  Новое развитие приложений с использованием Cordova и Ionic  ( Native app development using cordova and ionic ) 
Как сохранить процесс или сервис всегда запущены даже после того, как приложение будет убито пользователем, похожее на секундомер, который будет запущен даже ...

0  Сортировка не работает в смарт-таблице угловой JS  ( Sorting is not working in smart table angular js ) 
Сортировка смарт-таблицы не работает по какой-то причине после использования в качестве пользовательской директивы. Можете ли вы помочь мне, что я сделал не т...

0  Отображать имя страницы в JavaScript?  ( Display page name in javascript ) 
Как бы я добавил <код> location.href.split('/').pop() к документу HTML для отображения имени страницы? (Не весь URL) я хотел бы отобразить только имя страниц...

1  Как заменить адреса электронной почты с ссылками Mailto на веб-странице Live?  ( How to replace email addresses with mailto links in a live web page ) 
Представьте себе это: вы столкнулись с веб-страницей, который говорит: «Просто отправьте сообщение user@example.com», но чтобы на самом деле отправить электро...

0  Кнопка CKeditor 4 Не отображается  ( Ckeditor 4 underline button not showing ) 
Это мой код JavaScript для конфигурации моего CKEDITOR. Я нахожу на браузере для этого решения, но я не могу найти никакого решения даже на официальном сайте ...

4  Является ли хорошей идеей использовать условные зависимости в модулях AMD?  ( Is it a good idea to use conditional dependencies in amd modules ) 
Я думаю об использовании условий для указания модуля зависит в модульной системе AMD. Например, чтобы загрузить библиотеку на браузере и библиотеку на сервере...

0  JavaScript Foreach Array Ключевые значения, вывод в HTML  ( Javascript foreach array key values output to html ) 
Как сердите к клавишам ARRAY THRU, чтобы вывести свои значения в HTML? Расположение Я работаю, - это миниатюрная сетка, 3 колонны на 2 ряда. Каждый миниатюр...

1  JavaScript не работает над динамическим контентом  ( Javascript not working on dynamic content ) 
У меня есть страница, где в HTML Div загружен с другой страницы. На родительской странице у меня есть JavaScript, который имеет элементы, которые применяются ...

Связанный проблема

0  Удалите подстроку из строки в jQuery [дублировать] 
0  .append () элемент с более чем одним классом 
0  Как закрыть всплывающее окно, когда видео YouTube играет на кнопке кнопки ESC? 
0  Модель только показывает идентификатор в вложенной модели в парусах 
1  Столбец Tabulator с JSX - выполнение функций класса 
362  JavaScript Глобальный механизм событий 
0  Команда STEART BOBLE не работает, когда добавляю новый файл JS 
0  Новое развитие приложений с использованием Cordova и Ionic 
0  Сортировка не работает в смарт-таблице угловой JS 
0  Отображать имя страницы в JavaScript? 
1  Как заменить адреса электронной почты с ссылками Mailto на веб-странице Live? 
0  Кнопка CKeditor 4 Не отображается 
4  Является ли хорошей идеей использовать условные зависимости в модулях AMD? 
0  JavaScript Foreach Array Ключевые значения, вывод в HTML 
1  JavaScript не работает над динамическим контентом