Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Обработчик кликов. (https://javascript.ru/forum/jquery/46658-obrabotchik-klikov.html)

Duda.Ml1986@gmail.com 18.04.2014 17:11

Обработчик кликов.
 
Всем привет.
Есть обычное меню.
<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){
и как не кручу немогу никак сделать так что бы обрабатывался первым вновьдобавленный элемент.

nice_try 18.04.2014 17:21

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

делай так

$('.sub_sidebar').live( "click", function(e) {

Duda.Ml1986@gmail.com 18.04.2014 17:47

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


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

       })


Аналогичная х... Короче все время срабатывает обработчик #sidebar ! как узнать что клик был не по нему?

nice_try 18.04.2014 17:48

фильтруй через event.target

Duda.Ml1986@gmail.com 18.04.2014 18:50

короче все решилось не просто но решилось.

Sweet 18.04.2014 18:58

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


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