2010-04-12 2 views
4

я не знаю, если кто-то это заметил, но я заметил, что jQuery samples I see on MS, как правило, использовать другой формат:

<script type="text/javascript"> 

    $(domReady); 

    function domReady() { 
    $('#btn').click(showMessage); 
    } 

    function showMessage() { 
    $('#message').fadeIn('slow'); 
    } 
</script> 

Разве это не то же самое, как:

$(document).ready(function() { 

    $('#btn').click(showMessage); 

    function showMessage() { 
    $('#message').fadeIn('slow'); 
    } 

}); 

Есть любое преимущество использования одного синтаксиса над другим?

Допустим, способ MS выглядит более чистым.

ответ

4

Единственное реальное отличие - читаемость и организация.

Это технически же, как

$(function() { 

    $('#btn').click(showMessage); 

    function showMessage() { 
    $('#message').fadeIn('slow'); 
    } 

}); 

который является сокращением для $(document).ready(...)

+0

Я всегда задавался вопросом, как работает, что сокращенная. '$ (document) .ready (...)' Я понимаю. Думаю, jQuery ожидает делегата или анонимную функцию? – Armstrongest

+0

Основная функция jQuery $() проверяет, является ли тип параметра функцией. Если это так, он добавляет его как обработчик события document.ready. Если это что-то другое, он использует его как селектор. Я думаю, что на самом деле это так: if (jQuery.isFunction (selector)) { return rootjQuery.ready (selector); } –

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