.toggle在IE8中无法正常工作
问题描述:
在IE8中,toggle kinda可以工作,但覆盖了下面的内容。它可以在所有其他浏览器中正常工作。我一直试图在过去的2个小时解决这个问题,但没有运气....toggle在IE8中无法正常工作
jQuery的:
$(document).ready(function() {
$('.toggle').hide();
$('.expand-all').click(function(){
// switch visibility
$(this).data('is_visible', !$(this).data('is_visible'));
// change the link depending on whether the element is shown or hidden
$(this).html((!$(this).data('is_visible')) ? 'Expand all' : 'Hide');
$(this).next().toggle();
return false;
});
});
HTML:
<div id="categories">
<div class="cat">
<h3>Rice</h3>
<ul>
<li><a href="">Rice brand 1</a></li>
<li><a href="">Rice brand 2</a></li>
<li class="expand-all">Expand all</li>
<div class="toggle">
<li><a href="">Rice brand 1</a></li>
<li><a href="">Rice brand 1</a></li>
</div>
</ul>
</div>
<div class="cat">etc</div>
<div class="cat">etc</div>
<div class="cat">etc</div>
</div>
答
看起来好像你在display : inline-block
属性中遇到了问题ETTING。
下面是一些尝试,为更多的东西尝试只是谷歌的“Internet Explorer 8 inline-block的”:http://www.compsoft.co.uk/Blog/2009/11/inline-block-not-quite-inline-blocking.html
而且IE7将不接受display : inline-block
属性,所以你需要把它添加到您的代码使其在IE7工作,以及:
.some-ele {
display : inline-block;
*display : inline;
zoom : 1;
}
的*display
属性无效,但仍然会通过IE7阅读并为它取影响元素必须有,你不能手动设置hasLayout
财产,但你可以强制设置zoom : 1
。
对于IE6你需要指定一个高度display : inline-block
工作,但如果你只是想指定IE6的高度,您可以使用_height : XXpx
将仅由IE6(多个无效代码,IE就会消化)被读取。以下是关于此的一些信息:http://blog.mozilla.com/webdev/2009/02/20/cross-browser-inline-block/
该示例页面的javascript控制台指示jquery未被加载。你的JS资源的URL是'tangola1.local'。 – 2012-01-11 20:34:41
对不起,jquery文件在本地加载。它应该在Chrome/Firefox中工作 – Cris 2012-01-11 20:37:08
在IE8中适合我。也许你应该描述你所看到的问题。 – 2012-01-11 20:39:39