2011-03-21 98 views
2

问:选择div没有具体的内容

我有以下情况:

div包含一个链接,我想只是选择div没有联系,我的意思是,在DIV我,当点击想要通过一些JQuery来点击链接,具体操作不同。

i上的工作结构是:(由萤火虫)

<div class ="rsAptContent"> sql <a class = "rsAptDelete" href = "#" style ="visibility: hidden;">Delete</a> </div>

jQuery代码:

<script type="text/javascript">

$(document).ready(function() { 


    $(".rsAptContent").click(function(e) { 
      ShowDialog(true); 
      e.preventDefault(); 
     }); 

    }); 

    function ShowDialog(modal) { 
     $("#overlay").show(); 
     $("#dialog").fadeIn(300); 

     if (modal) { 
      $("#overlay").unbind("click"); 
     } 
     else { 
      $("#overlay").click(function(e) { 
       HideDialog(); 
      }); 
     } 
    } 

    function HideDialog() { 
     $("#overlay").hide(); 
     $("#dialog").fadeOut(300); 
    } 

</script>` 

当我点击链接,我不要执行Jquery代码,如何选择没有链接的div。

在此先感谢

回答

2

试试这个:

$(".rsAptContent").click(function(e) { 
     if($(e.target).hasClass('rsAptDelete')) return false; 
     ShowDialog(true); 
     e.preventDefault(); 
    }); 
}); 

如果目标是事件被取消的联系;

4

您是否在寻找类似stopPropagation()的代码?

$(".rsAptContent").click(function(e) { 
      e.stopPropagation(); 
      ShowDialog(true); 
      return false; 
     }); 

    }); 

这应该停止执行链接。

http://api.jquery.com/event.stopPropagation/

编辑:点击链接并点击内容的任何部分,除了链接

$(".rsAptContent").click(function(e) { 
       var $target = $(e.target); 
       if($target.is(a){ 
        // It's the link. 
       }else{ 
        // else it's not 
       } 
      }); 
     }); 
+0

不,我不想停止链接事件,我想区分点击链接并点击内容的任何部分,除了链接,如何做到这一点。 – 2011-03-21 08:57:59

+1

编辑问题澄清。 – 2011-03-21 09:21:23

3

检查点击的目标元素之间的区分不是执行动作

来获取信息关于哪个元素是点击下面的脚本使用

function whichElement(event){ 
    var tname 
    tname=event.srcElement.tagName 
    alert("You clicked on a " + tname + " element.") 
} 
1

如果您已经在删除链接上有一个点击处理程序,那么只需使用stopPropagation()即可停止事件传播。

$(".rsAptDelete").click(function(e) { 
    e.stopPropagation(); 
});