Проблемы с вызовом ajax в IE - PullRequest
0 голосов
/ 12 января 2012

* Решено Splash-X - (см. Комментарии) ****

Я довольно новичок в ajax и jquery, поэтому я уверен, что у меня естьсделал здесь простую ошибку, но часы траления Google не помогли мне, поэтому я действительно надеюсь, что кто-то здесь может.Код для вызова ajax ниже.Это может быть или не быть подходящим, но код ниже сам загружается с помощью вызова ajax, очень похожего на приведенный ниже.

Контент загружается нормально во всех браузерах, но код внутри полной функции ajax неt работает в 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 голосов
/ 12 января 2012

Событие .load в jQuery имеет обратный вызов для завершения вызова.Пример использования будет:

 $("#result_area").html(ajax_load).load(loadUrlx, function(){
      alert('Move my function here');
 });
0 голосов
/ 12 января 2012

Я должен предположить, что на самом деле в вашем коде нет

<? base_url(); ?>

.

В противном случае я понятия не имею, как разные браузеры будут обрабатывать то, что, по-видимому, является директивой обработки XML, и она может сильно различаться.

Возможно, это предназначено для того, чтобы быть переданным через переводчика?В противном случае поместите строковое значение фактического базового URL-адреса вместо этой строки.

...