代码之家  ›  专栏  ›  技术社区  ›  Martin AJ

当事件设置为外部元素时,如何检测另一个元素内的元素?

  •  1
  • Martin AJ  · 技术社区  · 6 年前

    $("div").on('click', function(e){
      
        e.preventDefault(e);
    
      /*
      if ( clicked element is <a> element ){
      
        redirect to the href
        and return false
        
      }
      */
      
      alert("div clicked");
      
    })
    div{
      cursor: pointer;
      border: 1px solid;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div>
      <p>this is a paragraph</p>
      <a href="/url">this is a link</a>
      <p>this is another paragraph</p>
    </div>

    <div> <a> ,然后重定向到它,然后死亡。我该怎么做?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Eddie    6 年前

    e.target e.target.tagName

    $("div").on('click', function(e) {
    
      e.preventDefault(e);
    
      if ( e.target.tagName === 'A' ) {
          var href = $(e.target).attr('href');
          console.log(href);
      }
    
      //e.target.tagName - Will return 'A' if <a> is clicked.
    
    })
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div>
      <p>this is a paragraph</p>
      <a href="/url">this is a link</a>
      <p>this is another paragraph</p>
    </div>