Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 奇怪的jQuery鼠标悬停/移出行为_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 奇怪的jQuery鼠标悬停/移出行为

Javascript 奇怪的jQuery鼠标悬停/移出行为,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有点问题 我有一个网格的图像(3x3),并有一个功能,以交换图像,并显示一个“内容”面板 虽然前两行显示内容区域正确,但最下面的一行显示为进出、进出、进出等 是什么导致了这种行为,我如何修复它 不停摆弄 请原谅悬停图像。。。似乎JSFIDLE不喜欢它或其他什么。。。但请放心,在网站上,它是有效的 代码-jquery1.7 HTML 内容面板显示在图像的顶部。如果查看其他行,它将放置在图像旁边或下面 由于内容面板位于图像前面,因此图像不再触发mouseover事件(因为鼠标现在位于内容面板上方

我有点问题

我有一个网格的图像(3x3),并有一个功能,以交换图像,并显示一个“内容”面板

虽然前两行显示内容区域正确,但最下面的一行显示为进出、进出、进出等

是什么导致了这种行为,我如何修复它

不停摆弄

请原谅悬停图像。。。似乎JSFIDLE不喜欢它或其他什么。。。但请放心,在网站上,它是有效的

代码-jquery1.7 HTML
内容面板显示在图像的顶部。如果查看其他行,它将放置在图像旁边或下面

由于内容面板位于图像前面,因此图像不再触发mouseover事件(因为鼠标现在位于内容面板上方)。这会导致它隐藏内容面板,这意味着鼠标再次在图像上并形成一个循环


要打破此循环,您需要将鼠标悬停事件附加到
.panel
元素(因为如果鼠标悬停事件位于图像或内容面板上方,则会在那里冒泡)或者确保内容面板永远不在图像的顶部。

这是由于数据面板一直增长到鼠标指针下方,从而触发面板图像上的鼠标出,从而导致数据面板收缩到不再位于指针下方,这会再次触发面板图像上的鼠标指针…

p.s.我也使用hoverIntent插件进行了尝试,获得了相同的结果。在我读这篇文章之前大约一秒钟就找到了答案:)是的,我必须更改面板7-9上的
边距顶部:
。谢谢
// panel grid image swapper
$('.panel img').mouseover(function() {
    var $this = $(this);
    var src = $this.attr("src").match(/[^\.]+/) + "-hover.png";
    $this.attr("src", src);
    // Show data panel
    $('.' + $this.attr('data-panel')).show('fast');
}).mouseout(function() {
    var $this = $(this);
    var src = $this.attr("src").replace("-hover.png", ".png");
    $this.attr("src", src);
    // Hide data panel
    $('.' + $this.attr('data-panel')).hide('fast');
});
<div class="panel-3-image-grid">
    <div class="panel1 panel">
        <img src="/core/images-tmp/panel-images/panel-3/image1.png" alt="" data-panel="panelGrid-1-content" />
        <div class="panelGrid-content panelGrid-1-content">Panel 1</div>
    </div>
    <div class="panel2 panel">
        <img src="/core/images-tmp/panel-images/panel-3/image2.png" alt="" data-panel="panelGrid-2-content" />
        <div class="panelGrid-content panelGrid-2-content">Panel 2</div>
    </div>
    <div class="panel3 panel">
        <img src="/core/images-tmp/panel-images/panel-3/image3.png" alt="" data-panel="panelGrid-3-content" />
        <div class="panelGrid-content panelGrid-3-content">Panel 3</div>
    </div>
    <div class="panel4 panel">
        <img src="/core/images-tmp/panel-images/panel-3/image4.png" alt="" data-panel="panelGrid-4-content" />
        <div class="panelGrid-content panelGrid-4-content">Panel 4</div>
    </div>
    <div class="panel5 panel">
        <img src="/core/images-tmp/panel-images/panel-3/image5.png" alt="" data-panel="panelGrid-5-content" />
        <div class="panelGrid-content panelGrid-5-content">Panel 5</div>
    </div>
    <div class="panel6 panel">
        <img src="/core/images-tmp/panel-images/panel-3/image6.png" alt="" data-panel="panelGrid-6-content" />
        <div class="panelGrid-content panelGrid-6-content">Panel 6</div>
    </div>
    <div class="panel7 panel">
        <img src="/core/images-tmp/panel-images/panel-3/image7.png" alt="" data-panel="panelGrid-7-content" />
        <div class="panelGrid-content panelGrid-7-content">Panel 7</div>
    </div>
    <div class="panel8 panel">
        <img src="/core/images-tmp/panel-images/panel-3/image8.png" alt="" data-panel="panelGrid-8-content" />
        <div class="panelGrid-content panelGrid-8-content">Panel 8</div>
    </div>
    <div class="panel9 panel">
        <img src="/core/images-tmp/panel-images/panel-3/image9.png" alt="" data-panel="panelGrid-9-content" />
        <div class="panelGrid-content panelGrid-9-content">Panel 9</div>
    </div>
</div>
.panel-3{height:515px;width:990px;margin:0 auto;clear:both;position:relative;z-index:1;}
.panel-3-content{width:480px;float:left;padding-top:160px;}
.panel-3-image-grid{width:475px;float:left;padding-top:20px;}
.panel-3-image-grid div.panel{width:154px;height:154px;float:left;margin-right:3px;margin-bottom:3px;}
.panel-3-image-grid div.panel:hover, .panel-3-image-grid div.panel:active, .panel-3-image-grid div.panel.active{

}
.panel-3-image-grid div.panel:last-child{margin-right:0;}

.panelGrid-content{display:none;position:absolute;width:154px;height:310px;background:#c8deed;}
.panelGrid-1-content, .panelGrid-2-content, .panelGrid-3-content{margin-top:3px;}
.panelGrid-4-content, .panelGrid-5-content{margin:-154px 0 0 157px;}
.panelGrid-6-content{margin:-154px 0 0 -157px;}
.panelGrid-7-content, .panelGrid-8-content, .panelGrid-9-content{margin-top:-314px;}