函数仍然在.hide()之后运行?

时间:2011-12-09 04:33:46

标签: jquery function jquery-selectors popup modal-dialog

每当我点击时,我都有一个链接,有一个弹出窗口。我在一个函数中设置了一个模态窗口,它在其中做了一些其他的东西。在模态窗口中,我有一个关闭按钮。但出于某种原因

function popup(){
//dostuff
}


$('selector').hover(function(){
   $('open_selector').click(function(){
   popup();
});
},function(){
   //button to .hide();
});

当我隐藏弹出窗口时,函数中的东西仍在运行。它不应该做什么吗?除非我再次点击链接?

谢谢!

编辑:我有一个隐藏的元素,我想在悬停时显示它,这就是为什么我有悬停语句。但我忘了在这个脚本中添加一个关闭按钮,关闭popup();

$('button_selector').click(function(){
//hide the dialog box that pops up (in this case popup())
});

1 个答案:

答案 0 :(得分:0)

我认为你的意思是:

$('selector').hover(function(){
   $('open_selector').click(function(){
       popup();
    });  
},function(){
   //button to .hide();
});

首先,您在悬停功能中订阅了一个事件。为什么不把它放在你的document.ready处理程序

$('open_selector').click(function(){
   popup();
});

您拥有它的方式,点击处理程序在您首次悬停在此元素上之前不会处于活动状态。此外,此选择器将尝试查找名为“open_selector”的标记 - 这是一个类吗?如果是,您需要$('.open_selector').click( - ditto for $('selector').hover


至于你原来的问题,第二个功能,你列出的是什么

,function(){
   //button to .hide();
}

是鼠标悬停 out 时应执行的操作。当鼠标悬停在原始选择器的任何位置时,它将始终执行。