Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.04.2014, 17:11
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

Обработчик кликов.
Всем привет.
Есть обычное меню.
<ul id="sidebar">
<li>Text</li>
<li>Text</li>
</ul>


По клику через ajax загружаю подкатегории.
вставляю

<ul id="sidebar">
<li>Text
<ul class="sub_sidebar">
<li>Text</li>
<li>Text</li>
</ul>
</li>
<li>Text</li>
</ul>


Проблема в том что даже добавив обработчик :
$('.sub_sidebar').live( "click", function() {
           e.preventDefault();
           console.log('link');

           e.stopPropagation();
       });


первым срабатывает обработчик на $('#sidebar > li').click(function(e){
и как не кручу немогу никак сделать так что бы обрабатывался первым вновьдобавленный элемент.
Ответить с цитированием
  #2 (permalink)  
Старый 18.04.2014, 17:21
Аватар для nice_try
Профессор
Отправить личное сообщение для nice_try Посмотреть профиль Найти все сообщения от nice_try
 
Регистрация: 11.12.2013
Сообщений: 313

у тебя должно ругаться что нет переменной e

делай так

$('.sub_sidebar').live( "click", function(e) {
Ответить с цитированием
  #3 (permalink)  
Старый 18.04.2014, 17:47
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

$('#sidebar').on('click', 'li', function(e){
           e.preventDefault()
;


$('.sub_sidebar').on('click', 'li', function(e){
           e.preventDefault();
           e.stopPropagation();
           console.log('sub_sidebar');

       })


Аналогичная х... Короче все время срабатывает обработчик #sidebar ! как узнать что клик был не по нему?
Ответить с цитированием
  #4 (permalink)  
Старый 18.04.2014, 17:48
Аватар для nice_try
Профессор
Отправить личное сообщение для nice_try Посмотреть профиль Найти все сообщения от nice_try
 
Регистрация: 11.12.2013
Сообщений: 313

фильтруй через event.target
Ответить с цитированием
  #5 (permalink)  
Старый 18.04.2014, 18:50
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

короче все решилось не просто но решилось.
Ответить с цитированием
  #6 (permalink)  
Старый 18.04.2014, 18:58
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Duda.Ml1986@gmail.com, .live - deprecated-метод. А с версии 1.9 - выпилен. Ну и нафига писать код, который не позволит обновить jQ?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заставить выполняться обработчик после всех имеющихся обработчиков данного элемен Анатолий Саратовцев jQuery 2 08.10.2012 18:49
Снова вернуть обработчик, on(), off() Deliaz jQuery 4 11.08.2012 19:23
Как снять обработчик с очередью FanAizu jQuery 0 11.02.2012 19:28
Обработчик внутри обработчика, к чему приведет? KamalovRadik jQuery 8 17.11.2011 17:08
Как "обмануть" обработчик события? itPiligrim Events/DOM/Window 0 13.05.2010 22:55