Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » jQuery. Одна функция для нескольких событий

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

raffx



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет! Помогите, пожалуйста, с jQuery. Имеется функция, которая вызывается при различных событиях. Как переписать код, чтобы функция не дублировалась трижды, а все события обращались к нему?
 

Код:
 
jQuery(function ($) {
 
  $(window).scroll(function(){
      alert('hello');
  });
 
 
  $(window).resize(function() {
      alert('hello');
  });
 
 
  $(document).ready(function() {
      alert('hello');
  });
 
 
});
 

Всего записей: 98 | Зарегистр. 15-01-2009 | Отправлено: 22:53 05-04-2015
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
raffx
есть же тема!!
Вопросы по jQuery
 

Цитата:
  $(window).scroll(function(){  
      alert('hello');  
  });  
 
 
  $(window).resize(function() {  
      alert('hello');  
  });  
 

$(window).on('scroll resize', function(){
   alert('hello');  
});
 
а можно просто завести отдельную функцию, ее и вызывать.

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 22:55 05-04-2015
raffx



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii, извиняюсь что промахнулся с веткой. Раз уж тут написал, не буду дублировать вопрос и там. Не могли бы подсказать что я делаю не так?
Пытаюсь отдельную функцию вызывать при каждом событии, но не работает.
 

Код:
 
jQuery(function ($) {
 
  function hello() {
    alert('hello');
  }
 
  $(window).scroll = hello;
  $(window).resize = hello;
  $(document).ready = hello;
 
});
 

Всего записей: 98 | Зарегистр. 15-01-2009 | Отправлено: 23:18 05-04-2015
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
raffx

Цитата:
  $(window).scroll = hello;  
  $(window).resize = hello;  
  $(document).ready = hello;  

это в принципе неправильно. у jQuery объекта нет атрибутов scroll, resize и так далее.  
если хотите прилепить обработчики к DOM элементам, то получите их сначала из объекта (но то, что делаете, в принципе неправильно)
 
$(window).get(0).scroll = ...
$(window)[0].scroll = ...
 
правильно будет
  $(window).on('scroll resize', hello);  
  $(document).ready(hello);  
 
или, если нужно вызывать с аргументами
  $(window).on('scroll resize', function() {hello();});  
  $(document).ready(function() {hello();});

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 23:21 05-04-2015 | Исправлено: Mavrikii, 23:29 05-04-2015
raffx



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii, всё понял. Благодарю вас за помощь!

Всего записей: 98 | Зарегистр. 15-01-2009 | Отправлено: 23:30 05-04-2015
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » jQuery. Одна функция для нескольких событий


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru