Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Jquery. Как повесить на событие функцию..
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Jquery. Как повесить на событие функцию..

Страниц (1): [1]
 

1. Edwvee - 01 Июля, 2013 - 13:07:36 - перейти к сообщению
Собственно сабж. Пробовал сделать, но не получилось.
2. IllusionMH - 01 Июля, 2013 - 13:10:08 - перейти к сообщению
Edwvee, на какое событие, какую функцию? Гадалки на форуме экстрасенсов сидят.
Вангую
если в общем виде то

CODE (javascript):
скопировать код в буфер обмена
  1. $(document).on('event_name',function(){
  2.  //your code here
  3. });
3. LIME - 01 Июля, 2013 - 13:12:57 - перейти к сообщению
IllusionMH пишет:
если в общем виде то
в общем виде будет так
CODE (javascript):
скопировать код в буфер обмена
  1. element.Событие = function(){
  2.     //your code here
  3. }
4. IllusionMH - 01 Июля, 2013 - 13:17:58 - перейти к сообщению
LIME, просили на jQuery неизвестное событие на неизвестном элементе, так что мой ответ норм.
Интересно, кастомные события всплывают до документа?
upd. Судя по примерам - все ок с отлавливанием кастомных эвентов на документе.
5. Edwvee - 01 Июля, 2013 - 14:30:20 - перейти к сообщению
Ну блин, то есть:
Где-то до ранее в коде написано:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $('button').click(function () {
  3. alert('100500');
  4. })


А потом, спустя несколько строк может возникуть потребность дополнительно на клик батона еще кое-что повесить, только чтобы оно выполнялось перед alert('100500');
6. IllusionMH - 01 Июля, 2013 - 14:41:31 - перейти к сообщению
Edwvee, ну так пишите сразу, или вставляйте новый код, который должен сработать раньше перед этим. Или внутри клика создавайте кастомное событие и вешайте на него обработчик. Вот так просто взять и к нонэйм функции прицепится нельзя.
Можно конечно утворить что-то вроде
CODE (javascript):
скопировать код в буфер обмена
  1. var old = element.onclick;
  2. element.onclick = function() {
  3. //new code
  4. old();
  5. };
7. Edwvee - 01 Июля, 2013 - 15:21:45 - перейти к сообщению
Почему-то у меня не работает ни один вариант снятия функции с событий из приведенных ниже
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $('button').unbind('click');
  3.  

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $('button').off('click');
  3.  

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $('button').off();
  3.  


Вроде должно же работать..
8. kappa - 01 Июля, 2013 - 15:26:46 - перейти к сообщению
может live() или delegate()
9. Edwvee - 02 Июля, 2013 - 09:39:34 - перейти к сообщению
То есть если подключено с помощью live, то по-другому надо отключать?
10. armancho7777777 - 02 Июля, 2013 - 09:49:12 - перейти к сообщению
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $('button').on('click', callback);
  3.  
  4. // the live events
  5. $('form').on('click', 'button', callback);
  6.  
  7. $('button').off('click');
  8.  

 

Powered by ExBB FM 1.0 RC1