旧标题:包含的 PHP 无法按预期在函数中与 JQuery 和 IE 配合使用
我有这两个功能:
第一:
/* dynamic menue */
$("#wrapper div").not(":first").hide();
$("#nav p").click(function () {
$('#wrapper div').eq($(this).index()).show().siblings().hide();
});
第二:
var menue = function (menue) {
if ($(window).width() < 680) {
$("#nav").hide();
$("#wrapper div").show();
} else {
$("#nav").show();
$("#wrapper div").not(":first").hide();
}
};
$(document).ready(menue);
$(window).resize(menue);
第一个功能运行良好,第二个功能确保如果窗口大小超过 680px,则所有内容都显示在没有菜单的情况下,否则将显示正常状态。在所有浏览器中一切正常。
我编了一个可视化 fiddle :http://jsfiddle.net/TFeWY/
但是,这在 IE 中无法按照预期的设置工作:div 内容是使用 php 生成的。在这种状态下,我只能在 IE 中看到第一个 div,无法切换到另一个,但调整大小效果很好。但是,如果我用 html 更改 php 内容,一切都会再次正常工作。更有趣的是:如果我保持 php 不变,只需删除 else 语句,它也可以工作。
到目前为止,我无法弄清楚它是 php 内容(我不这么认为)还是 php 内容上下文中的 hide() 命令。
IE的功能有问题吗? (在IE8下测试)
编辑:
如果我删除 $(window).resize(menue);它也有效。那么肯定是函数本身有问题?
我发现window.resize函数在IE 8中总是被触发,这就是为什么我看不到其他div的原因。
我该怎么做呢?
最佳答案
也许可以重新组织您的代码,例如:
$(document).ready(function(){
$("#wrapper div:gt(0)").hide();
$("#nav p").live('click',function () {
$('#wrapper div').eq($(this).index()).show().siblings().hide();
});
menue();
$(window).live('resize',function(){menue()});
});
function menue() {
if ($(window).width() < 680) {
$("#nav").hide();
$("#wrapper div").show();
} else {
$("#nav").show();
$("#wrapper div:gt(0)").hide();
}
}
关于php - window.resize总是在IE中触发而不调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9246085/