【问题标题】:jquery effects not working on internet explorerjquery 效果在 Internet Explorer 上不起作用
【发布时间】:2012-01-18 16:32:55
【问题描述】:
<script type="text/javascript" src="css/jquery-1.7.1.js"></script>


<script type="text/javascript">


function slidedown(id){

$('#rerooftext').hide(0);
$('#inspectiontext').hide(0);
$('#remodelingtext').hide(0);
$('#restorationstext').hide(0);
$('#commtext').hide(0);
$('#painttext').hide(0);

setTimeout(300);
$('#'+id.id+'text').fadeToggle(1000);

};
</script>

这里我有一个隐藏几个包含文本的 div 的函数,然后使用 jquery 函数显示单击链接的 div。此代码在 chrome 中运行良好,但 Internet Explorer 不执行动画,当我单击链接时,它隐藏了当前 div,它是 reroof 但无法显示新 div,即代码 $('#'+id.id+ '文本').fadeToggle(1000);

任何想法为什么会发生这种情况?

【问题讨论】:

  • 哪个版本的IE? 2.0? 6? 7?
  • 函数是怎么调用的? HTML 是什么样的?
  • 在我看来就像 'setTimeout(300);' 上的脚本错误所以下面的动画失败了。 IE 不像 Chrome 那样宽容。
  • 另外,查看您的 html + css 会有所帮助,因为 IE 可能会遇到浮动错误或绝对/相对定位的元素。
  • 你的settimeout用法不对,看这里:developer.mozilla.org/en/DOM/window.setTimeout 然后,你能不能先用$('#'+id.id+'text').show(),然后用$('# '+id.id+'text').show(1000) ?

标签: javascript jquery html


【解决方案1】:

这是因为setTimeout(300); 处的代码中存在错误,导致执行直到执行淡入淡出动画的那一行。

setTimeout 接受 2 个参数。第一个是函数指针或包含要执行的代码的字符串,第二个参数是指定函数或代码执行的时间(以毫秒为单位)。

评论该行,因为它没用,然后尝试它会起作用。如果你想让动画延迟一段时间,你可以看看 jQuery delay

function slidedown(id){

   $('#rerooftext').hide(0);
   $('#inspectiontext').hide(0);
   $('#remodelingtext').hide(0);
   $('#restorationstext').hide(0);
   $('#commtext').hide(0);
   $('#painttext').hide(0);

   //setTimeout(300);

    $('#'+id.id+'text').fadeToggle(1000);

};

【讨论】:

  • 在哪个IE版本中setTimeout(300)失败?
  • 我认为在所有 IE 版本(至少 Chrome 中它可以正常工作而不会引发任何错误。
猜你喜欢
  • 2012-07-31
  • 2017-08-06
  • 2011-01-25
  • 1970-01-01
  • 2012-06-07
  • 1970-01-01
  • 2019-08-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多