jquery - $(文档).ready(function(){});在 IE9 上失败

标签 jquery internet-explorer-9

我对多个 php 页面使用单个 js 文件。在每个 php 的末尾,我创建一个 javascript 变量来标识它,如下所示:

<div>    
.
.
.
</div>

<script>
var idp = 1;
</script>

</body>
</html>

然后在我的 js 文件中我有:

$(document).ready(function() {
    .
    .
    .
    if (idp == 1) {
       FunctionWithTheCodeForPage1();
    }
    if (idp == 2) {
       FunctionWithTheCodeForPage2();
    }
});

它在 Chrome 和 Firefox 上运行良好,但在 IE9 中有时似乎无法获取 idp 变量的值,有时它不会执行“if”语句之前的一些 jquery 代码,似乎问题在于$(文档).ready();因为我已经设置了 FunctionWithTheCodeForPage1();直接在第 1 页的 php 中,它可以工作,但是 $(document).ready(); 中的其余代码没有。

这是我正在使用的库:

<script type='text/javascript' src="Scripts/Popcalendar.js"></script>
<script type='text/javascript' src='Scripts/jquery-latest.js'></script>
<script type='text/javascript' src='Scripts/jquery.lightbox_me.js'></script>
<script type='text/javascript' src='Scripts/MyJS.js'></script>

这个问题并不总是发生,有时页面加载正确,有时会出现此错误,但大多数情况下都会出现该错误。 IE9有兼容性问题吗?我缺少什么?谢谢

最佳答案

由于您已经准备好了几个函数,因此只需将它们直接传递给 jQuery,而不是绕道某些 ID 变量。

如果您将函数传递给 jQuery,它将在页面准备好后立即执行。通常这是使用匿名函数完成的,如下所示:

$(function() {   // or $(document).ready(function() {
  // ...
});

但您也可以只传递之前定义的现有函数。

$(FunctionWithTheCodeForPage1);

您还可以为主体定义唯一的 ID 并具有单一功能:

$(function () {
  $("body#page1").each(function () {
    // page1 specific;
  });
  $("body#page2").each(function () {
    // page2 specific;
  });
});

这样您就不必向页面添加任何额外脚本。

关于jquery - $(文档).ready(function(){});在 IE9 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12231479/

相关文章:

css - IE9 css 媒体查询无法正常工作......在其他任何地方都可以正常工作

javascript - $(this).click() Internet Explorer 问题

javascript - JavaScript 中的 PHP 和转义

javascript - php:修改html标签的属性

javascript - jQuery 平滑滚动,当页面滚动到相应部分时添加一个 active 类来锚定

jquery - 循环遍历元素并添加递减的 z 索引

css - 在 IE 9 中使用 Css3 固定渐变

asp.net - Internet Explorer 将我的代码放在不需要的 div 中

jquery - Twitter Bootstrap 模态表单提交

javascript - 没有击中 javascript 断点