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){たが成功しなかった

4

1 に答える 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

于 2013-09-24T10:12:36.790 に答える