2010-10-26 3 views
0

У меня есть интервал сердцебиения, который вызывает функцию каждые несколько секунд. Эта функция, в свою очередь, делает запрос JSON на сервер через jQuery, сервер возвращает ответ JSON и функцию jQuery для успеха, как обычно. Внутри функции успеха он выполняет другую функцию jQuery, foreach для каждого идентификатора. С каждого id вызывается функция (this). Затем эта функция выполняет другой JSON-запрос через jQuery и получает данные.jQuery: IE возвращается пустым для ID

.: например

function function() { 
jQuery.noConflict()(function($){ 
    $.ajax({ 
    success: function(data){ 
    jQuery.each(data.ids, function() { 
    function2(this); 
    } 
    }); 
    }); 
}); 
} 

function function2(id) { 

//In IE id is empty here 

jQuery.noConflict()(function($){ 
    $.ajax({ 
    // In IE id has data here in it, WTF 
    success: function(data){ 
    //In IE id is empty here 
    } 
    }); 
}); 
} 

Кроме того, имейте в виду, что они не настоящие имена функций, только здесь в качестве примера для того, что фактическая проблема. Проблема в том, что в IE 7 и IE 8 переменная id является ПУСТОЙ. В любом другом браузере идентификатор никогда не пуст. Я не понимаю, почему. Может кто-нибудь, пожалуйста, помогите мне здесь?

Благодаря

ответ

1

Я не знаю, как IE обрабатывает синтаксис, несколько jQuery.noConlict() вызовов не нужны, а не ваш звонок (если нужно $ внутри) должен выглядеть следующим образом:

function function2(id) { 
(function($){ 
    $.ajax({ 
    success: function(data){ 
    } 
    }); 
})(jQuery); 
} 

или вместо обруча все ваши функции внутри одного (function($) { /* code */ })(jQuery);, вызывая .noConflict(), а также при необходимости.

+0

Спасибо, что указали это. – SoLoGHoST

1

Иш, похоже, что вы нашли икота в кросс-совместимости JQuery в. Я бы попробовал привязать .each() к this и использовать console.log() либерально, пока вы не найдете, где скрипт перестает работать. Используя инструменты разработчика IE (нажмите f12), вы сможете, по крайней мере, отследить проблему.

+0

Даже я столкнулся с той же проблемой, что и вы делаете это в ajax complete, иногда IE не имеет понятия об этом DOM – kobe

Смежные вопросы