在窗口加载时创建show hide功能?

时间:2014-11-07 06:54:50

标签: javascript jquery html

我正在使用有人在stackoverflow上帮助我的脚本。它工作得很好,但它不适用于IE8-10中的我的amchart(我已经将这个问题与amcharts一起记录,因为问题似乎与图表有关)。

我想在此期间使用jQuery脚本进一步排除故障。我仍在学习jQuery,需要一些指导,将以下javascript代码转换为jQuery show()hide()脚本。

我已经尝试了它的基本形式:

$(window).load(function() {
$("div").hide();
};

当您切换图表未显示的表单时,它适用于除IE 8-10之外的所有其他浏览器。下面请参阅IE 8-10中有效的两个脚本的exerpts。

<script type="text/javascript">

function chart1() {
var show = ['chartdiv1', 'unit-price'];
for ( var i = 0; i < show.length; ++i ) 
document.getElementById(show[i]).style.display = "block";
var hide = ['chartdiv2', 'unit-price-value','chartdiv3', 'unit-price-rand'];
for ( var i = 0; i < hide.length; ++i ) 
     document.getElementById(hide[i]).style.display = "none";
};

   </script>

    <script>
    function chart1() {
    document.getElementById("chartdiv1").style.display = "block";
    document.getElementById("unit-price").style.display = "block";
    };
    function chart2() {
    document.getElementById("chartdiv2").style.display = "none";
    document.getElementById("unit-price-value").style.display = "none";
    };
    function chart3() {
    document.getElementById("chartdiv3").style.display = "none";
    document.getElementById("unit-price-rand").style.display = "none";
    };
    </script>


</head>
<body style="background-color:#FFFFFF; margin: 10px;" onLoad="chart1()"> or onload"chart1(), chart2(),.............

2 个答案:

答案 0 :(得分:1)

您的代码中似乎存在语法错误。

这个功能不应该是这样的吗? :

$(window).load(function() {
    $("div").hide(); //and not $("div">.hide();
}); // added the closing bracket of load function

答案 1 :(得分:1)

试试这个:

$(window).load(function() {
   $("div").hide();
   $("#chartdiv1, #unit-price").show();
});

在窗口加载时,您只需隐藏所有div,但最好用css隐藏它。然后只显示你想要显示的特定ID的div。