2013-09-24 18 views
0

HTMLjQuery的。對()和。不是()

<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

當然,你只需要停止從傳播了DOM樹.options點擊。例如(您還需要添加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