我有3个div使用JQuery的toggle函数来折叠div:
div在Firefox中可以正常崩溃,但在IE6(目标浏览器)中会发生这种情况:
如果我调整IE窗口的大小,div会恢复正常,就像在Firefox中一样。
我试着把代码简化成最简单的形式:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<title>BIIS Portal</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta http-equiv="pragma" content="cache" />
<link rel="stylesheet" type="text/css" media="all" href="../assets/stylesheets/core-css.css" />
<script type="text/javascript" src="../assets/js/core-js.js"></script>
<!-- This script doesn't seem to work when put it in its own .js file... why? -->
<script type="text/javascript">
$(document).ready(function(){
//Hide (collapse) the toggle containers on load
$(".toggle-container").hide();
//Show all containers with class toggle-opened
//Remove the opened class
//Find the trigger for the now opened container and apply the active class
$(".toggle-opened").show().removeClass("toggle-opened").prev(".toggle-trigger").addClass("active");
//Switch the Open and Close state per click then slide up/down (depending on open/close state)
$(".toggle-trigger").click(function(){
$(this).toggleClass("active").next().toggle();
return false; //Prevent the browser jump to the link anchor
});
});
</script>
</head>
<body>
<div id="wrapper">
<div id="header">
</div>
<div id="body">
<div>
<div class="portlet">
<div class="portlet-header">
<div class="portlet-title">
<h2>BI - External data Control</h2>
</div>
</div>
<div class="portlet-body">
<div>
<h3 class="toggle-trigger">External Data Configuration</h3>
<div class="toggle-container toggle-opened">
blah
</div>
<h3 class="toggle-trigger">Current Notifications</h3>
<div class="toggle-container toggle-opened">
blah
</div>
<h3 class="toggle-trigger">General Information</h3>
<div class="toggle-container toggle-opened">
blah
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
core-css.css:
@import "base.css";
@import "framework.css";
@import "elastic.css";
@import "superfish.css";
@import "/application/css/jquery.autocomplete.css";
@import "/application/css/hspi-content-nav.css";
@import "/application/css/jquery-ui/jquery-ui-1.8.12.custom.css";
core-js.js仅仅是几个JQuery库的缩小版,即:
- jQuery JavaScript程式库v1.5.2
- jQuery循环插件(带转换定义)版本:2.86(2010年4月5日)
- jQuery循环插件转换定义版本:2.72
- jQuery用户界面1.8.12
- jQuery用户界面小部件1.8.12
- jQuery用户界面鼠标1.8.12
我不太清楚发生了什么,因为我大部分都是复制现有的代码。我需要让它在IE中正常工作,所以任何建议都是感激的。
3条答案
按热度按时间6tqwzwtp1#
@Mitch.我认为你的主要问题是你的CSS样式。你没有提供CSS代码,但下一个例子是我在IE6-8和FF 7中测试的工作(除了IE6-7不支持CSS
content
样式)http://jsfiddle.net/2YyXC/于飞:
剧本:
CSS:
n53p2ov02#
为ie6添加带有.toggle-container和/或.toggle-closed的条件注解(不确定是否使用该类)显示:无
pu3pd22g3#
一个常见的问题是,事情并没有按照他们应该的那样被重新绘制。如果调整窗口大小或缩放页面工作,这是一个重新绘制错误,据我所知,有绝对没有什么你可以做的代码,除了试图找到一些其他的编码工作。