在IE中调用ajax的问题

时间:2012-01-12 17:51:35

标签: jquery ajax internet-explorer-9

* 由Splash-X解决 - (见评论) ****

我对ajax和jquery相当新,所以我确信我在这里犯了一个简单的错误,但谷歌的拖网时间并没有帮助我,所以我真的希望有人在这里。 ajax调用的代码如下。它可能是也可能不是相关的,但下面的代码本身是由一个非常类似于下面的ajax调用加载的。

内容在所有浏览器中都正常加载但是ajax完成函数中的代码在IE9中不起作用 - 没有加载jscrollpane并且调整大小元素的jquery不起作用。该代码在最新版本的FF和safari中运行良好。如果您需要查看任何其他代码,请告诉我。任何帮助将不胜感激。

$('ul.sort_ul li, ul.cat_items li').click(function(){
    if(!$(this).hasClass('sort_cat')){
        $('ul.sort_ul li, ul.cat_items li').removeClass('active');
        $(this).addClass('active');
        var sid=$(this).attr('id');
        var loadUrlx='<? base_url(); ?>games/ajax_dbr';
        if((sid!='')&&(sid!='undefined')){loadUrlx+='/'+sid}
        $.ajaxSetup ({cache: false}); 
        var ajax_load = "<div class=\"loader_res_small\"><img src='http://www.imgshack.co.uk/images/site/ajaxloader.gif' alt='loading...' /></div>";
        $("#result_area").html(ajax_load).load(loadUrlx);
            $('#result_area').ajaxComplete(function() {
                $('#result_area').jScrollPane();

                //get td width and set width of table headers
                var tdname = $(".tdname").width();
                $("#s_name").width(tdname-11); 
                var tdcat = $(".tdcat").width();
                $("#s_cat").width(tdcat-10);
                var tdur = $(".tdrateu").width();
                $("#s_ur").width(tdur-10);
                var tdor = $(".tdrateo").width();
                $("#s_or").width(tdor-10);

        });
    }

});

** * ** 现在修订的代码所有浏览器的工作 ** * ** * ** * * < /强>

$('ul.sort_ul li, ul.cat_items li').click(function(){
    if(!$(this).hasClass('sort_cat')){
        $('ul.sort_ul li, ul.cat_items li').removeClass('active');
        $(this).addClass('active');
        var sid=$(this).attr('id');
        var loadUrlx='<? base_url(); ?>games/ajax_dbr';
        if((sid!='')&&(sid!='undefined')){loadUrlx+='/'+sid}
        $.ajaxSetup ({cache: false}); 
        var ajax_load = "<div class=\"loader_res_small\"><img src='<? base_url(); ?>images/site/ajaxloader.gif' alt='loading...' /></div>";
        $("#result_area").html(ajax_load).load(loadUrlx, function() {
                $('#result_area').jScrollPane();

                //get td width and set width of table headers
                var tdname = $(".tdname").width();
                $("#s_name").width(tdname-11); 
                var tdcat = $(".tdcat").width();
                $("#s_cat").width(tdcat-10);
                var tdur = $(".tdrateu").width();
                $("#s_ur").width(tdur-10);
                var tdor = $(".tdrateo").width();
                $("#s_or").width(tdor-10);

        });
    }

});

2 个答案:

答案 0 :(得分:0)

我必须假设你没有

<? base_url(); ?>

实际上在您的代码中。

否则我不知道不同的浏览器如何处理显然是xml处理指令的东西,它可能会有很大变化。

也许这是通过翻译服务的?否则,请将实际基本URL的字符串值替换为此字符串。

答案 1 :(得分:0)

jQuery中的.load事件在调用完成时有一个回调。 示例用法是:

 $("#result_area").html(ajax_load).load(loadUrlx, function(){
      alert('Move my function here');
 });