Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.03.2013, 11:23
Аспирант
Отправить личное сообщение для Blizzart Посмотреть профиль Найти все сообщения от Blizzart
 
Регистрация: 03.02.2010
Сообщений: 63

Замыкание. jquery&native js
Интересно знать, почему функции работают по разному? и в первом случае переменную можно таким образом получить во внешнюю функцию, а во втором область видимости действует по правилам замыкания.
function clk(){
    width = 0
	$(this).children('a').each(function(){
		width += $(this).width();
	});
	console.log(width);//число 216
};
$('.main-menu').click(clk);


function siblings(){
	width1 = 0
	function sibCount(){
		width1 = 11;
	}
	console.log(width1); //число 0
}
siblings();
Ответить с цитированием
  #2 (permalink)  
Старый 15.03.2013, 11:31
Аспирант
Отправить личное сообщение для jsgeek Посмотреть профиль Найти все сообщения от jsgeek
 
Регистрация: 13.02.2013
Сообщений: 34

Потому что не вызвана функция sibCount(). Ты её определил, но видимо забыл вызвать
Ответить с цитированием
  #3 (permalink)  
Старый 15.03.2013, 12:03
Аспирант
Отправить личное сообщение для Blizzart Посмотреть профиль Найти все сообщения от Blizzart
 
Регистрация: 03.02.2010
Сообщений: 63

Да, я специально не поставил sibCount()
Значит, jQuery методы сами вызывают все функции, которые внутри них...
Ответить с цитированием
  #4 (permalink)  
Старый 15.03.2013, 12:23
Аспирант
Отправить личное сообщение для jsgeek Посмотреть профиль Найти все сообщения от jsgeek
 
Регистрация: 13.02.2013
Сообщений: 34

Метод each вызывает функцию переданную ему для каждого элемента массива или объекта jquery. В данном случае $(this).children('a') - итерируемый объект.

Последний раз редактировалось jsgeek, 15.03.2013 в 12:27.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не получается вставить код js в HTML garmoni Элементы интерфейса 3 05.09.2013 05:56
Конфликтуют js скрипты в Opera romka AJAX и COMET 2 28.05.2012 15:32
Разное оформление для посетителей с JS и без fry2 Events/DOM/Window 13 03.02.2012 17:45
Не получается передать переменную из JS в PHP Lion_astana AJAX и COMET 2 23.11.2010 17:23
помогите задать переменную в js bsgroupua Общие вопросы Javascript 3 01.02.2010 18:28