修改
我仍然无法让这个工作....
我已经尝试过下面的代码,当它在页面上工作时,它不适用于div和span我希望它能够工作...
如果您转到2hon5.net,您可以看到代码正常工作,它会通过2hon5.net/js/2hon5.js处的代码显示弹出窗口:
$("#wordInf").css({'display':'block'});
(默认隐藏) 你可以看到我在那里尝试的所有代码,任何人都可以看到我的代码中的内容是阻止弹出消失吗?
结束修改
我尝试了很多解决方案,包括这个:similar question I couldn't get working我有一个信息弹出窗口,显示动态信息,具体取决于它悬停在哪个范围内。我设置好它会直接弹出当前跨度。如果调用范围或div本身不再悬停(因为它有链接),我希望它在一小段延迟后消失。我没有运气,有什么建议吗?
<span onmouseover='callHover(code1234,this)' class='code 1234'>The calling span</span>
<span onmouseover='callHover(code1235,this)' class='code 1235'>The calling span</span>
被叫div是:
<div id="codeInf" >
<span id="code_id">generated code here</span>
<a href="#">link 1</a>
<a href="#">link 2</a>
<a href="#">link 3</a>
<a href="#">link 4</a>
</div >
调用div的jquery是:
$("#codeInf").mouseover(showCode);
var showCode = function(ev) {
var pos = $("#codeInf").offset();
var width = $("#codeInf").width();
$("#codeInf").css( { "left": (pos.left + width) + "px", "top":pos.top + "px" } );
$("#codeInf").show();
}
我尝试了与上述相关的问题中的代码,但它不起作用 - 也许是因为我调用代码的方式?
我想要的结果是如果调用范围或codeInf div不再被覆盖,将隐藏代码的代码,一个div可以被调用到许多不同的跨度,所以我不希望延迟的hide影响它是否被另一个跨度调用。
提前感谢任何建议。
标记
答案 0 :(得分:1)
查看jQuery的hover documentation
示例:
$("li").hover(function () {
// focus
}, function () {
// lost focus
});
答案 1 :(得分:1)
简单的做法是在span和popup的div中添加mouseleave。
$("span").hover(function() {
// hide all other divs
$("div").slideDown("slow");
});
function hidepanel() {
if ($('div').is(':hover') === false) {
$('div').slideUp();
}
}
$('div').mouseleave(function() { setTimeout(hidepanel, 4000); });
$('span').mouseleave(function() { setTimeout(hidepanel, 4000); });
答案 2 :(得分:1)
这不是一个完美的结果,但我通过在调用和生成的div中添加一个onmouseout'hideChar()来解决了这个问题。
瘦我做了一个bool来将div设置为悬停或不悬停:
var isWordHover=new Boolean(0);
var isCharHover=new Boolean(0);
function charHover2(){
isCharHover=Boolean(1);
setTimeout(HC, 4000);
}
我设置它使mouseout上的值为0,鼠标悬停时为1。需要弄清楚一些错误(有时它不会把鼠标拿出来等等......但是它会隐藏弹出窗口,并且能够将鼠标悬停在上面并点击链接。
感谢所有的建议。
标记