阻止关于子项的点击事件,生成由父

时间:2016-02-21 21:14:42

标签: jquery html css

我有lis包含锚标签等。点击li打开一个模态窗口,点击子锚标签删除li(这是可取的)。但是点击锚标签会触发li上的点击事件并打开模态窗口。如何解决这个问题。我甚至尝试过event.stopPropagation,但即使这样也没有停止模态打开。

Thanx提前!!

2 个答案:

答案 0 :(得分:0)

有两种方法可以避免事件传播:

  1. 在锚点击事件中停止事件传播
  2. 检查li click事件中的目标元素
  3. 要删除/替换父li,请单击子锚点,您可以使用replaceWith。

    
    
    return keypressed=False # returns True if keypressed==False else False
    
    
    $(function () {
      $('li').click(function(e) { // if event is originated from li OK
        if ($(e.target).is('li')) {
          alert('open modal');
        }
      });
      
      
      $('a').click(function(e) {
        e.preventDefault();
        //e.stopPropagation();    // stop propagation
        $(this).parent('li').replaceWith($(this));  // remove parent li
      });
    });
    
    
    

答案 1 :(得分:0)

要让锚元素不做基本的事情(继续使用所需的网址),你必须使用jQuery的event.preventDefault方法。

基本用途:

$('a').click(function(e){
 e.preventDefault();
});