Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.10.2014, 19:47
Новичок на форуме
Отправить личное сообщение для Freeman777 Посмотреть профиль Найти все сообщения от Freeman777
 
Регистрация: 28.02.2014
Сообщений: 3

как избежать вызова события 2 раза
Добрый день.

Использую плагин datatables.net для проекта. В таблице используются кнопки с обработкой событий. Обработчик вида

$( ".btn-show-datails" ).on( "click", function( e ){ ... });

срабатывает только для первой страницы. На всех остальных он не работает.

Для этого вынес обработку события в отдельную функцию resultDetailsShow( el, e ){} и вызываю её дважды:

// 1й раз
$( ".btn-odds" ).on( "click", function( e ){
	 resultDetailsShow( $( this ), e );
});

// 2й раз
tableResult.on( "draw", function() {
	$( this ).find( ".btn-odds" ).each( function( index, val ) {
		$( this ).click( function( e ) {
			resultDetailsToggle( $( this ), e );
		});
	});
});

В результате получил обработку событий на всех страницах при пагинации и новый баг - 2й вызов функции на 1й странице

Не хотелось бы костылить. Как можно решить проблему работы функции на всех страницах? Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 23.10.2014, 19:55
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Ну не зная че как у тебя устроено, можно посоветовать либо использовать делегирование, либо перед вторым навешиванием делать .off('click')

Кстати, зачем .each()?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 27.10.2014, 11:45
Новичок на форуме
Отправить личное сообщение для Freeman777 Посмотреть профиль Найти все сообщения от Freeman777
 
Регистрация: 28.02.2014
Сообщений: 3

Сообщение от danik.js Посмотреть сообщение
Ну не зная че как у тебя устроено, можно посоветовать либо использовать делегирование, либо перед вторым навешиванием делать .off('click')

Кстати, зачем .each()?
Спасибо
Сообщение от danik.js
зачем .each()?
перестраховался и лишняя вещь. Можно убрать ))
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как запустить функцию, только если выполнились все события, на которые она подписана Shitbox2 jQuery 4 05.03.2013 10:40
Как в IE динамически установить значение события onClick? Гость Элементы интерфейса 6 16.01.2011 23:46
Как вызвать событие после события определенного в onchange Наталья Events/DOM/Window 2 12.09.2009 13:51
Как заставить this в обработчике события указывать на объект? Dmitryk Events/DOM/Window 3 16.03.2009 08:45
Как избежать наложения текста(выпадающий список)? AlexMak (X)HTML/CSS 2 22.12.2008 10:52