2011-02-17 71 views
4

我有一个div,我想点击,但我需要一个mailto链接里面的div仍然工作。当我将鼠标悬停在mailto链接上时,mailto出现在浏览器的底部,但点击会激活链接到div的链接。无论如何围绕这个?谢谢。jQuery可点击的div与工作mailto链接里面

<div class="directory_search_results"> 
<img src="images/no_photo.png" /> 
<ul class="staff_details"> 
<li class="search_results_name"><a href="http://www.netflix.com">Micheal Staff</a></li> 
<li class="search_results_location">University of Illinois</li> 
<li class="search_results_email"><a href="mailto:[email protected]">[email protected]</a></li> 
    <li class="search_results_phone">(407) 555-1212</li> 
    <li class="search_results_office">(407) 555-1212</li> 
</ul></div> 

现在jQuery的

$(document).ready(function(){  
$(".directory_search_results").click(function(){ 
     window.location=$(this).find("a:first-child").attr("href"); 
     return false; 
}); 

回答

9

类添加到您的mailto:链接是这样的:

<div class="directory_search_results"> 
<img src="images/no_photo.png" /> 
<ul class="staff_details"> 
<li class="search_results_name"><a href="http://www.netflix.com">Micheal Staff</a></li> 
<li class="search_results_location">University of Illinois</li> 
<li class="search_results_email"><a class="nobubble" href="mailto:[email protected]">[email protected]</a></li> 
    <li class="search_results_phone">(407) 555-1212</li> 
    <li class="search_results_office">(407) 555-1212</li> 
</ul></div> 

并添加下面的jQuery代码

$('.nobubble').click(function(event){ 
    event.stopImmediatePropagation(); 
}); 

这将阻止事件的冒泡到父DIV蚂蚁引发的点击那里。

+0

工作。谢谢! – 2011-02-17 20:34:47

0

考虑这一点。

jquery提供的其中一个项目是模式对话框。

基本上它提供了一个带有“屏幕”的对话框,它位于屏幕的其余部分,以防止您在对话框启动时单击页面上的其他任何内容。

div ...作为一个容器元素可以容纳多个项目... div中的任何项目仍然被认为是div的一部分。

现在,我不是一个专业的,当涉及到DOM结构和层次结构,但它听起来像你想做什么不会工作。

如果在div内有类似链接的东西,并且jquery正在查看该元素的单击事件。我会假设div内的任何东西都会在div提供的屏幕下面。所以如果你有一个div内的链接,你点击链接,你也可以点击div。