检查链接点击发生在div内

时间:2014-12-08 18:14:42

标签: javascript html

当用户点击特定div中的链接

时,我希望Javascript返回true

例如: 当用户点击div中具有class =" span1"的链接时,它将返回true

<div class="span1">
   <h3>Title 3</h3>
      <ul class="stages" dir="ltr">
          <li><a href="http://www.example.com" >Example 1</a></li>
          <li><a href="http://www.example.com" >Example 2</a></li>
      </ul>
</div>

<div class="span2">
   <h3>Title 4</h3>
      <ul class="stages" dir="ltr">
          <li><a href="http://www.example.com" >Example 1</a></li>
          <li><a href="http://www.example.com" >Example 2</a></li>
      </ul>
</div>

非常感谢!!

2 个答案:

答案 0 :(得分:1)

只需对if使用.hasClass语句:

$("div").click(function(){
  if($(this).hasClass("span1")){
    alert("SPAN 1 CLICKED");
    return true;
  }
});

FIDDLE

更新:我的问题太快了,这是一个新的小提琴,针对的是a而不是div

NEW FIDDLE

应该是这样的:

if($(this).closest("div").hasClass("span1")){

答案 1 :(得分:0)

纯粹的Javascript:http://jsfiddle.net/xxx96bta/5/

var links = document.getElementsByTagName('a'); //collect your elements

for (i = 0; i < links.length; i++) {
    (function () {
        links[i].addEventListener('click', whatSpan, false);
    })();
}

function whatSpan() {
    var parentspan = this.parentNode.parentNode.parentNode.className;
    if (parentspan == "span1") {
        alert("you clicked span 1");
    } else {
        alert("you clicked span 2");
    }

}