我正撞在墙上对着这个......
我有以下代码:
$("#home").click(function(e) {
$(".tabs").attr("src","tabs-home.gif");
$(".islice").hide('fast');
$(".islice").load("home.html");
$(".islice").show('fast');
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
它在Firefox,Safari和Chrome中运行得非常好,但IE只运行attr()并且不执行隐藏/显示或加载.我尝试删除隐藏和显示它仍然无法正常工作.
IE报告没有语法错误,即使使用DebugBar也是如此.我能做错什么?
您可以在http://www.brick-n-mortar.com上查看实际网站
S.K*_*ers 49
我有同样的问题.我发现的许多网站都建议IE可能会缓存你的代码,并建议将代码附加到
$("#home").click(function(e) {
$(".tabs").attr("src","tabs-home.gif");
$(".islice").hide('fast');
$(".islice").load("home.html?" + new Date().getTime() );
$(".islice").show('fast');
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
这应该确保IE不缓存.
有关详细信息,请参阅http://zacster.blogspot.com/2008/10/jquery-ie7-load-url-problem.html.
我遇到了这个问题,整天都在摸不着头脑.然而,终于找到了一个解决方案,并实现了一个怪异的IE是什么.
首先,
$(".islice").load("home.html");
Run Code Online (Sandbox Code Playgroud)
无论我们怎么努力,都行不通.我们将不得不使用
$.get("home.html", function (data) ....... );
Run Code Online (Sandbox Code Playgroud)
我会解释".....",因为一般
$.get("home.html", function (data) { $(".islice").html(data); }); // doesn't work
Run Code Online (Sandbox Code Playgroud)
不行.
代替
$.get("home.html", function (data) {
data = '"' + data + '"';
$(".islice").html(data);
var newHTML = $('.islice').html();
$('.islice').html(newHTML.substr(1,newHTML.length-2));
}); // works
Run Code Online (Sandbox Code Playgroud)
将工作.
说明:=>数据可能有新的行号.所以设置innerHTML = data; 因为他们而休息.通过添加引号,我们将其转换为字符串,但使html添加额外的引号,以便我再次删除引号.
道德:=> IE糟透了..没有其他..
在 IE 中不会e.preventDefault()
有任何区别 - 你必须使用它return false;
来阻止事情发生:
$("#home").click(function(e) {
$(".tabs").attr("src","tabs-home.gif");
$(".islice").hide('fast');
$(".islice").load("home.html");
$(".islice").show('fast');
e.preventDefault();
return false;
});
Run Code Online (Sandbox Code Playgroud)
要详细调试此问题,请查看Firebug。
归档时间: |
|
查看次数: |
85656 次 |
最近记录: |