2013-08-17 2 views
0

Я только что читал некоторые учебники для слушателей JQuery.JQuery в функции анонимного вызова: почему?

В учебнике они всегда рекомендуют поместить весь код сценария JQuery в анонимную вызывающую функцию javascript без аргументов.

Есть ли причина для этого? Слушатели работают, когда вне тела анонимной функции.

ответ

3

Если вы имеете в виду:

(function() { 
    // Your code here 
})(); 

Это потому, что тогда функции вы объявляете в этой функции не становятся глобалам. Глобальное пространство имен заполнено достаточно, и редко есть основания для его добавления.

Например, если вы сделали это:

<script> 
function foo() { 
    // ...do something useful... 
} 

// Use foo 
foo(); // or `$("some selector").click(foo);`, etc. 
</script> 

... вы бы создать глобальное называется foo. Но если вы это сделаете:

<script> 
(function() { 
    function foo() { 
     // ...do something useful... 
    } 

    // Use foo 
    foo(); // or `$("some selector").click(foo);`, etc. 
})(); 
</script> 

... вы этого не сделаете.

0

Вы имеете в виду готовый документ?

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

короткая версия:

$(function() { 
}); 

Эта функция, учитывая, что ссылки JQuery, сработает, если ваш дом будет готов. не должен быть смешан с анонимным себя призывом:

(function() { 
})(); 

Последней не имеет ничего общего с JQuery

-1

Что ты говоришь? Можете ли вы быть более ясными?

Вы имеете в виду что-то вроде этого

$(".some-class").bind("click hover", function(){ 
    // Do something 
}); 

Если вы имеете в виду это, то это могло бы помочь

Syntax 

bind(eventType, data, listener) 

здесь типСобытия (строки) являются такие события, как «нажмите», «зависании »и т. д. прослушиватель (функция) - это код, который должен быть выполнен, как только будет запущен eventType.

Следовательно, функция запускается, как только событие было запущено независимо от имени.