2011-12-10 35 views
1
工作

我这个页面上的工作:http://www.problemio.com/index_new.php无法获得鼠标离开()或鼠标移出()jQuery中

当你将鼠标放在“健康”的链接,我弹出弹出,但很难让它结束。

这里是我做过什么,使弹出显示出来:

$("<div id='pop'>" + div_contents + "</div>").dialog({ title: 'Secondary Categories'});    

,这里是我怎么想使之接近:

$('#hea_link').mouseout(function() 
{  
    $("#pop").dialog('close');     
}); 

$('#hea_link').mouseleave(function() 
{  
    $("#pop").dialog('close');     
}); 

无论是的,我想的方法获取弹出窗口关闭作品。另外,我不知道为什么点击弹出窗口右上角的x不会关闭它。

任何想法我在做什么错在这里?

+0

你让像那些对话的1000,当你鼠标。尝试只做*一个*和你的代码应该工作。 – Blender

+0

仅供参考:您也可以打开多个对话框。您应该创建新的对话框,但切换它的可见性。可能还有多次使用ID beind的问题。 – Smamatti

+0

您的close x在该示例中有效,但是当您将鼠标悬停在上面时,您似乎会打开两个对话框。所以你必须点击关闭两次>? –

回答

2

你有几个问题:

你悬停在链接创建另一个<div id='pop'></div>每次。我建议创建对话框的前期和显示/隐藏/根据需要填充它:

添加以下HTML到您的网页:

<div id='pop' style='display:none'></div> 

然后在页面加载时(在document.ready或类似):

$("#pop").dialog({ autoOpen: false }); 

你拥有的另一个问题是,看你的代码,它看起来像你只是路过hover一个功能。这意味着该功能将在mouseentermouseleave上执行。经过两个函数hover

$('#hea_link').hover(function() 
{  
    $("#pop").dialog('open');     
}, 
function() 
{ 
    $("#pop").dialog("close"); 
}); 

使用悬停这种方式意味着你不需要mouseout/mouseleave事件监听器两种。

例子:http://jsfiddle.net/jNq9X/