Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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
Jquery 为什么图像需要在div/span元素中包围才能使效果正常工作?_Jquery_Jquery Ui_Jquery Plugins_Jquery Effects - Fatal编程技术网

Jquery 为什么图像需要在div/span元素中包围才能使效果正常工作?

Jquery 为什么图像需要在div/span元素中包围才能使效果正常工作?,jquery,jquery-ui,jquery-plugins,jquery-effects,Jquery,Jquery Ui,Jquery Plugins,Jquery Effects,我不太明白为什么一个图像可以在一个范围内工作,但不能单独工作。 请参阅完整的示例 JS HTML vs 我认为确实需要将元素包装在一个DIV中。对于我的站点,较大的图像隐藏有问题;它只是垂直隐藏,而不是垂直和水平隐藏 包裹在DIV中解决了这个问题 我没有详细了解jQuery是如何执行hide(),但这种方式是有意义的,因为DIV是块元素,SPAN不是块元素。在您提供的链接中,它似乎工作得很好。在FF3.6.11/IE7中,该显示在无跨距图像上无法正常工作。当您环绕DIV时,你会从中得到很多灵

我不太明白为什么一个图像可以在一个范围内工作,但不能单独工作。
请参阅完整的示例

JS HTML

vs
我认为确实需要将元素包装在一个DIV中。对于我的站点,较大的图像隐藏有问题;它只是垂直隐藏,而不是垂直和水平隐藏

包裹在DIV中解决了这个问题


我没有详细了解jQuery是如何执行
hide()
,但这种方式是有意义的,因为
DIV
是块元素,
SPAN
不是块元素。

在您提供的链接中,它似乎工作得很好。在FF3.6.11/IE7中,该显示在无跨距图像上无法正常工作。当您环绕DIV时,你会从中得到很多灵活性,我们不可能只凭形象就能做到所有这些。@gov:我想我们在同一时间得出了相同的结论。我猜这与block vs inline的布局性质有关。对我来说,这很奇怪,它会在某种程度上起作用;我本以为一切都会发生,或者什么都不会发生。
 $(document).ready(
     function ()
     {
        $('#banner').hover( function(event){ $(this).children().hide("slow");}
                          , function(event){ $(this).children().show("slow");}
                          );
     }
  );
<div id="banner">
   <span><img src="http://static.jquery.com/files/rocker/images/logo_jquery_215x53.gif" title="Image" alt="Image"/></span>
</div>
<div id="banner">
   <img src="http://static.jquery.com/files/rocker/images/logo_jquery_215x53.gif" title="Image" alt="Image"/>
</div>