Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не работает функция one (https://javascript.ru/forum/jquery/25339-ne-rabotaet-funkciya-one.html)

Skyman 01.02.2012 23:43

Не работает функция one
 
Необходимо выполнить 1 раз код, если ширина браузера 1200.

$(window).resize(function() {	
	var main_width;
	main_width = $(window).width();
	if(main_width <= 1200) {
		$('.menu img').one('each', function() {
           // тут код не работает
		});
	}
});


Не работает one.
В консоле ошибок нет.

Если
$('.menu img').one('each', function() {

заменить на
$('.menu img').each(function() {

each работает.

DreamTheater 01.02.2012 23:46

У Вас неверные сведения о методе one.

Skyman 01.02.2012 23:51

DreamTheater, а каким методом воспользоваться, чтобы выполнить метод each 1 раз?

nasqad, с помощью each я беру значения ширины всех изображений в диве menu

poorking 02.02.2012 00:12

Цитата:

Сообщение от Skyman
Необходимо выполнить 1 раз код, если ширина браузера 1200.

$(window).resize(function handler() {	
	var main_width;
	main_width = $(window).width();
	if(main_width <= 1200) {
		$('.menu img').each(function() {
           // тут код
		});
                 $.unbind(window, "resize", handler);
	}
});


Может так? Удаляете обработчик когда он выполнился и все. (Я могу ошибаться, потому что jQuery не пользуюсь, но смотрел)

poorking 02.02.2012 00:41

nasqad,
Это не правильно... Обработчик тут же удалится, не выполнив код если условие не сработает. А событие ресайз срабатывает подобно mousemove, много раз подряд

devote 02.02.2012 00:57

.each(function(){
    // отработает один проход
    return false;
})


Часовой пояс GMT +3, время: 04:15.