в jQuery - несколько $(документ).готов ...?
вопрос:
если я свяжусь с двумя файлами JavaScript, оба с $(document).ready функции, что происходит? Ли заменить другими? Или сделать как $(document).ready вам звонил?
например,
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<script type="text/javascript" src="http://.../jquery1.js"></script>
<script type="text/javascript" src="http://.../jquery2.js"></script>
jquery1.js:
$(document).ready(function(){
$("#page-title").html("Document-ready was called!");
});
jquery2.js:
$(document).ready(function(){
$("#page-subtitle").html("Document-ready was called!");
});
Я уверен, что лучше всего просто объединить оба вызова в один $(document).ready но это не совсем возможно в моей ситуации.
6 ответов:
все будет выполнено и на первый вызов первого запуска основе!!
<div id="target"></div> <script> $(document).ready(function(){ jQuery('#target').append('target edit 1<br>'); }); $(document).ready(function(){ jQuery('#target').append('target edit 2<br>'); }); $(document).ready(function(){ jQuery('#target').append('target edit 3<br>'); }); </script>еще одна вещь, которую я хотел бы упомянуть
на
$(document).ready(function(){});вы можете использовать это сочетание клавиш
jQuery(function(){ //dom ready codes });
важно отметить, что каждый
jQuery()вызов должен фактически вернуть. Если исключение создается в одном, последующие (несвязанные) вызовы никогда не будут выполняться.Это правило применяется независимо от синтаксиса. Вы можете использовать
jQuery(),jQuery(function() {}),$(document).ready(), что бы вы ни хотели, поведение то же самое. Если ранний сбой, последующие блоки никогда не будут выполняться.Это было проблемой для меня при использовании сторонних библиотек. Одна библиотека выбрасывала исключение, а последующие библиотеки никогда ничего не инициализировали.
$(документ).ready (); - это то же самое, что и любая другая функция. он срабатывает после того, как документ готов - т. е. загружен. вопрос в том, что происходит, когда несколько $(документ).ready () запускаются не тогда, когда вы запускаете одну и ту же функцию в нескольких $(document).ready()'s
//this <div id="target"></div> $(document).ready(function(){ jQuery('#target').append('target edit 1<br>'); }); $(document).ready(function(){ jQuery('#target').append('target edit 2<br>'); }); $(document).ready(function(){ jQuery('#target').append('target edit 3<br>'); }); //is the same as <div id="target"></div> $(document).ready(function(){ jQuery('#target').append('target edit 1<br>'); jQuery('#target').append('target edit 2<br>'); jQuery('#target').append('target edit 3<br>'); });как будет вести себя точно так же. разница лишь в том, что хотя первые добьются тех же результатов. последний будет работать на долю секунды быстрее и требует меньше ввода. :)
В заключение, где можно использовать только 1 $(документ).готов();
//старый ответ
они оба будут вызваны по порядку. Лучше всего было бы объединить их. но не волнуйтесь, если это невозможно. страница не взорвется.
выполнение сверху вниз. Первый пришел, первый обслужен.
Если последовательность выполнения важна, объедините их.
оба будут вызваны, первый пришел первым обслужен. Взгляните здесь.
$(document).ready(function(){ $("#page-title").html("Document-ready was called!"); }); $(document).ready(function(){ $("#page-title").html("Document-ready 2 was called!"); });выход:
Document-ready 2 был вызван!
не некро нить, но под последние версии
jQueryпредлагаемый синтаксис:$( handler )используя анонимную функцию, это будет выглядеть как
$(function() { ... insert code here ... });смотрите здесь:
Comments