我对多个 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/