jQuery .on () и .not ()

0

HTML

<li class="feed">
    <a data-uid="15" data-fid="23" href="http://domain">
        <img src="imageurl.com" class="favicon">
        <span>Website Title</span>
        <span class="options">delete</span>
    </a>
</li>

JQuery

$(document).on('click', '.col-l .feed a', function(e){
    e.preventDefault();
    //do something
});

$('.options').click(function(){
    var fid = $(this).parent().attr('data-fid');
    var uid = $(this).parent().attr('data-uid');
    console.log(fid);
    console.log(uid);
});

Всякий раз, когда я нажимаю delete запускается jQuery .on а также .options. Есть ли способ, который, если .options, будет игнорировать .on()?

Я попробовал $(document).on('click', '.col-l.feed a:not(.options)', function(e){ но без успеха

Теги:

1 ответ

1
Лучший ответ

Конечно, вам просто нужно остановить .options от распространения дерева DOM. Например (вам также нужно добавить preventDefault к событию):

$(document).on('click', '.col-l .feed a', function(e){
    e.preventDefault();
    //do something
});

$('.options').click(function(e){
    e.stopPropagation();
    e.preventDefault();
    var fid = $(this).parent().attr('data-fid');
    var uid = $(this).parent().attr('data-uid');
    console.log(fid);
    console.log(uid);
});

Здесь jsFiddle demo

Ещё вопросы

Сообщество Overcoder
Наверх
Меню