2013-10-31 34 views
0

我创建了自己的工具提示中A HREF,为1个全屏div.over-bg和1个屏幕div.over-box中间小格:我自己的工具提示

<div class="over-bg" id="over-hat"> 
    <div class="over-box">   
     <a href="">link</a> 
    </div> 
</div> 

和JS使它显示和隐藏:

$('.over-bg').click(function(){ 
     $('.over-bg').fadeOut();//hidding when we click outside .over-box 
    }); 

    $('#over-hat .over-box').click(function(){ 
     return false;// do nothing when we click into .over-box 
    }); 

一切都很完美,但是当我在div.over-box内部有一个链接时,它不起作用。我想制作,只有当我们点击外部时,工具提示才会关闭。但链接必须工作。有任何想法吗?

+0

您的链接没有'href'属性,因此点击它不会有任何影响 - 假设您的HTML示例没有被修饰。 –

+0

有没有CSS?请粘贴 – DaniP

+0

我相信,如果您将over-box的zindex设置为高于over-bg,则不会调用点击功能。 –

回答

1

你的第二个代码片段更改为以下:

$('#over-hat .over-box').click(function(e){ 
    return($(e.target).prop("tagName")=="A"); 
}); 

这将有助于a标签使用其默认动作和别人去忽略该事件。

+0

@ Zaszczyk - 你可以使用这个建议,并简单地修改return语句来测试你可能需要点击的所有情况(即:按钮,链接等) –

0

尝试增加除了这个jQuery语句,你已经拥有:

$('#over-hat .over-box a').click(function(){ 
    window.location = $(this).attr('href'); 
}); 
+0

这不是什么错误的解决方案,但是我需要一些通用的按钮和带ID的标签,这将启动AJAX等。 – Zaszczyk

0

我只是在此假设,但它听起来像你想.over-bg当你点击链接淡出。如果是这样,你将不得不为锚点本身设置另一个点击处理程序,因为我认为锚点的默认行为是不要冒泡它们的事件。

看看这个小提琴http://jsfiddle.net/TCegn/