2010-08-18 2 views
5

У меня странная ошибка с поиском в IE8 и почтовом индексе. Это может быть не поиск почтового индекса как таковой, который вызывает его - просто вызов AJAX, который изменяет выбор. Я установил тестовую страницу here. Если вы нажмете на «Найти адрес», а затем дважды щелкните (довольно быстро) на одном из адресов, находящихся в пределах границы с красными границами, вы увидите ошибку ниже в IE8.Странная проблема IE8 с выбором, который запускает AJAX

Примечание: Я обнаружил, что он несовместим с воспроизведением ошибки, но если вы прокрутите список адресов прямо на дно, а затем дважды кликните по нему на Холли Коттедж, он должен воспроизвести ошибку.

IE8 Oddities

Если кто-нибудь может пролить на свет на этой причудливой поведение было бы очень высокую оценку. Это ошибка IE8?

+0

Я не получаю никакого результата с помощью кнопки адреса поиска. Результатом вызова является «Ошибка анализа: ошибка синтаксиса, неожиданный T_STRING в /home/sitecrit/public_html/test/ie8-bug/postcode.php в строке 1» – Ivo

+0

@Ivo Это странная, однако несвязанная ошибка - это происходит, когда Я загружаю php-файл - он объединяет все строки кода в один и удаляет кучу пробелов. Я думаю, что это связано с форматированием текстового файла unix/windows. – bcmcfc

+1

Я только что заметил - и я должен быть замедлен или что-то в этом роде, потому что думал, что это ожидаемое поведение (facepalm) - но запрос ajax последовательно возвращает ошибку в Firefox, как то, что сказал @Ivo, вызывая адрес 'select' ничего не заселяться. –

ответ

2

Я нашел проблему - браузеры не любят иметь javascript:void() набор для атрибута href. Если вы хотите иметь рабочий якорь, действие по умолчанию которого отменено, используйте # для атрибута href, а затем обработчик события для этого якоря return false, чтобы отменить действие браузера по умолчанию.


Эээ ... Хорошо ... извините за мое рвение, чтобы оставлять ответ и не перепроверить, что проблема была решена должным образом.

Мне сложно найти проблему. Я собираюсь только угадать здесь: два эффекта, запускаемых и заканчивающихся в то же время, смущают IE8, вызывая установку div на высоту 1px. Это, конечно, предполагает ошибку в реализации jQuery очереди эффектов, на которую я определенно не могу ручаться. Это только моя теория на данный момент - моя незнакомость с панелью разработчиков IE не позволяет мне исследовать дальше.

+0

Спасибо за ваш ответ. Я отключил void() s для #s, и проблема не устранена. – bcmcfc

1

Это проблема с работающими анимациями. Я полагаю. Ваше асинхронное действие вызывает некоторые скользящие анимации.

Первое: Попробуйте войти окончания всех анимация (поставить функцию обратного вызова в slide* вызова и войти текст на консоль.), Чтобы увидеть, если они работают в правильном порядке, - я полагаю, что они не делают и это проблема.

Second: Попробуйте добавить .stop() перед каждой асинхронно запущенной анимацией, чтобы она прерывала другие анимации, работающие одновременно.

Третье: Если это не помогло попробовать это для каждой анимации:

if($(this).data('running')==0){ 
$(this).data('running',1).slideUp(function(){$(this).data('running',0)}); 
}else{ /*call with timeout or ignore...*/ } 

Это основной семафор на элементе.

ИЛИ

Вы можете использовать .animate и анимации очередей в JQuery правильно, но это было бы немного излишним для этого случая (я думаю).

0

Моей первой реакцией может быть проблема с CSS. Если я найду значение по умолчанию и нажимаю ссылку «Найти адрес» один раз, я вижу аналогичную (хотя и не идентичную) проблему макета. Высота каждой секции выглядит свернутой, как если бы плавающие секции не поднимали правильную высоту содержимого.Если я поэтапно укажу высоту на каждом contentRow или переключу отображение из block-none-block на pcodeLookupAddressEdit_risk_address, форматирование будет исправлено.

Я не знаю конкретной причины, но вы можете проверить CSS и поведение show/hide на слайде.

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