2012-07-09 4 views
1

Этот код:Jquery синтаксис при вызове методов

<script type="text/javascript"> 

someMethod1(); 



$(function() { 
    someMethod2(); 
}); 

</script> 

В чем разница между этими двумя призваний? Когда мы делаем первый звонок, и когда мы делаем второй звонок? Каков порядок выполнения метода?

ответ

2

someMethod1 выполняется немедленно

someMethod2 ждет целая страница для загрузки, в том числе внешних файлов JavaScript (другие сценарии, или с других сайтов), CSS и других ресурсов перед выполнением кода.

$(function() { 
    //run after page loads 
}); 

Method2 иногда приходит в виде

$(document).ready(function() { 
    // Handler for .ready() called. 
}); 

Для получения дополнительной информации: http://api.jquery.com/ready/

+0

Фактически это связано с событием готовности DOM, что означает, что он срабатывает до загрузки всех ресурсов. Все синхронные скрипты будут выполняться до готовности DOM, но изображения могут отсутствовать. –

3
someMethod1(); 

Это может быть вызвано до или после того, как документ готов, и для него не требуется jQuery. Если это в конце вашей страницы, он будет вызываться, когда все элементы управления готовы, но если он посередине, тогда он будет знать только те элементы управления, которые получили визуализацию.

$(function() { 
    someMethod2(); 
}); 

Это вызов всегда после того, как документ готов и все элементы управления готовы/визуализированы. Для этого требуется jQuery. Вы можете больше узнать о готовом here. Это также поможет вам понять другой вызов функции.

1

операторы в блоке сценария выполняются в том порядке, в котором они возникают. Если номер строки и вставить дополнительный разрыв строки или два, чтобы сделать его легче говорить о:

1 someMethod1(); 
2 
3 $(
4 function() { 
5  someMethod2(); 
6 } 
7 ); 

1 линия, someMethod1() выполняется первым.

Затем строка 3, $() выполняются, когда параметр $() является анонимной функцией, определенная на линиях от 4 до 6. $() графиков функций, которые анонимные функции, которые будут выполнены позже в ответ на документе готового событие. То есть анонимная функция не выполняется в это время.

И наконец, когда документ готов, выполняется анонимная функция из строчек с 4 по 6, что означает, что линия 5 someMethod2().

Смежные вопросы