Странная ошибка jQuery в IE: неожиданный вызов метода или доступа к свойству - PullRequest
3 голосов
/ 25 ноября 2011

Как и всегда, в Firefox, Chrome, Safari и Opera все работает без проблем. Но IE ... Это другая история:)

Вот мой полный код: http://pastebin.com/ZdzzFayJ

По крайней мере, одна вещь, хорошая в IE, приходите ко мне со следующей ошибкой:

SCRIPT65535: Unexpected call to method or property access. 
jquery.min.js, line 3 character 29586

Что не так? Я не могу найти ошибку: (


UPDATE

Я очистил свой код, функции javascript теперь называются плагином jQuery. Я все еще получаю сообщение об ошибке, но теперь я знаю, где.

В своем коде я поместил комментарий IE ERROR рядом с кодом, где IE предупреждает об ошибке.

ПЛАГИНЫ: http://pastebin.com/6Dnd1qtd

JQuery: http://pastebin.com/wiHALjZx

Понятия не имею, почему IE ломается там .. Какие-нибудь решения?


С уважением, Марио

Ответы [ 3 ]

3 голосов
/ 29 ноября 2011

Для меня проблема заключалась в следующем:

я использую библиотеку где применяется ко всем окружающим средам.

my_lib.js

jQuery.ajax({
        data : jQuery('form').serialize(),
        url : '/'+action[1]+'/post_form',
        type : 'POST',
        dataType: 'json',
        success: function(data){
            $('#my_name_id').find('option').remove().end().append(data.select_options);

});

Json возвращает:

select_options  "<option></option>"

Все хорошо!НО, в одной форме #my_name_id это не выбор, это скрытое поле, это предварительно выбранное значение и отключенный атрибут для пользователя.

Вот почему jquery в IE8 возвращает мне ошибку.

Решение было:

my_lib.js

jQuery.ajax({
        data : jQuery('form').serialize(),
        url : '/'+action[1]+'/post_form',
        type : 'POST',
        dataType: 'json',
        success: function(data){
          if( $('#my_name_id').is('select') ) {
             $('#my_name_id').find('option').remove().end().append(data.select_options);
          }
});

Надеюсь, это кому-нибудь поможет!

2 голосов
/ 25 ноября 2011

Я решил проблему следующим образом:

  • Очистить мой код ( JSHint был очень полезен!)
  • Прежде чем я включил "//html5shiv.googlecode.com/svn/trunk/html5.js" чтобы IE распознал, что я использую теги HTML5, такие как section, header, ...
  • В плагине jQuery я заполняю элемент HTML-контентом.Вместо использования $(defaultOpts.data_container).html("HTML CONTENT") я использую defaultOpts.data_container.html("HTML CONTENT").Поэтому я отправляю объектный элемент $(#ID) в параметре плагину вместо того, чтобы отправлять только идентификатор элемента "#ID".

Теперь все работает нормально.Спасибо всем за вашу поддержку и усилия.

2 голосов
/ 25 ноября 2011

Вы, похоже, пропустили точку с запятой в функции get_data после echo_data(data).

request.done(function(data) {
    if (data) echo_data(data) _loading.hide();
    _ads_listing.unmask();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...