JQuery hide() and show() 在IE 7、8中无法使用

大家好,本人有一行JQuery代码在IE 7中无法使用。貌似简单的情况,但到底是哪里出了问题呢?

JS:

    $(window).load(function(){
    $("#start").click(function(){ 

        $("#start").hide();
        $("#twin_buttons_1").show();

    });
});

HTML:

<!-- start of button selection decision tree -->                    
<div class="input-group col-sm-6 col-sm-offset-4"> 
<button type="button" id="start" class="btn btn-success subscribe_button btn-publish">让我试试</button>
</div>

<div id="selection" class="input-group col-sm-8 col-sm-offset-3">

<!-- Twin 1st level buttons -->
<div id='twin_buttons_1' style='display:none;'>
    <br>
    <h2 style='font-weight:bold; color:white'>请选择一个选项:</h2>
    <button id='no_magic' class="btn btn-publish">都市生活</button>

<button id='magic' class="btn btn-publish">都市玄幻</button>

</div>

也加上了bootstrap CSS和JS。网址在www.conglinwang.com

阅读 13.4k
5 个回答

真正的问题是JQuery版本问题。我将JQuery降级到1.2.0版本后即可正常使用。

jquery中的hide()和show()在IE7,8中应该是不存在问题的,楼主大概是把window.onload和jquery的load搞混淆了
jquery里的load方法是用于载入远程 HTML 文件代码并插入至 DOM 中,是一个ajax请求,详情可以参考jquery手册
把js代码第一行的$(window).load替换成$(document).ready应该就可以了
jquery中$(document).ready作用类似于原生的window.onload,当然也有几点区别:

  • window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行,$(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕
  • window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个,$(document).ready()可以同时编写多个,并且都可以得到执行
  • window.onload没有简化写法,$(document).ready(function(){})可以简写成$(function(){})
$(function(){
your code here

})

jquery 1.8之后好像就不支持ie7,8了。应该是版本问题。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题