【问题标题】:Jquery load not working on internet explorer after then ready function之后,Jquery 加载无法在 Internet Explorer 上运行
【发布时间】:2011-05-24 16:38:47
【问题描述】:

在 firefox 或 chrome 或其他浏览器中我没有这个问题,但在 ie 中不起作用。

$(document).ready(function(){
$('#divplayer').load("/player/index.php");
    $("a.eklebeni").live('click', function(event){
        event.preventDefault();
        $('.png', this).attr('src', 'img/eklendi.png');
        $.get($(this).attr("href"), function(data) {
        $('#divplayer').html('<img src="img/player.png" class="png" alt="" />');
        $('#divplayer').load("/player/index.php");
        });
});

我不知道为什么加载功能不起作用?

谢谢

【问题讨论】:

  • 为什么不呢?会发生什么? 您在开发工具中看到了什么?
  • 查看 JavaSript 控制台,看看是否有任何报告的错误,然后发布错误。并且可能涉及任何脚本/html行。
  • 所有版本的 IE。并且 javascript 控制台没有显示错误,这是 facebook iframe 应用程序。您可以查看apps.facebook.com/muzikarsivi。但播放器加载脚本不起作用

标签: javascript jquery


【解决方案1】:

这些都不是与 jQuery 相关的解决方案……但它们都是您应该了解的 IE 和 W3C(其他所有人)之间的区别。看起来您可能已经为后者编码,这就是为什么在 IE 中它没有按您预期的那样工作,但不知道什么不工作,这是一个很大的 WAG。

在 IE 中,window.event 允许您访问事件(不是传递给事件处理代码的第一个参数),因此您的函数应该是:

//...
.live('click',function(event) {
  event=event||window.event;
//...

要阻止 W3C 中的事件,您应该使用event.preventDefault(),在 IE 中您需要设置 event.returnValue=false 以阻止默认事件。这意味着将更改更改为event.preventDefault()

if (event.preventDefault) {event.preventDefault():}
else {event.returnValue=false;}

【讨论】:

【解决方案2】:

我已经用 IE 缓存内容发生了一百万次,这没有帮助,因为不会报告任何错误或问题,它只是不起作用。尝试这样的事情,看看会发生什么:

$('#divplayer').load("/player/index.php?timestamp=" + (+new Date));

【讨论】:

    猜你喜欢
    • 2011-06-25
    • 2013-03-05
    • 2019-08-09
    • 2015-01-20
    • 2014-06-12
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    • 2023-03-31
    相关资源
    最近更新 更多