У меня есть шесть опций меню в моем webapp, и когда пользователь наводит курсор на ссылку (ul> li> a), я переключаю изображение, чтобы показать соответствующую фотографию, и я исчезаю изображение в и из. Тем не менее, я заметил, что когда пользователь быстро перемещал свою мышь между ссылками, очередь не обрабатывалась должным образом, и пользователь часто зависал по ссылке и имел старое изображение, отображаемое из предыдущего наведения. После небольшого чтения оказалось, что правильная вещь - использовать метод stop(), но когда я пытаюсь его реализовать, ie6 сообщает о переполнении стека.метод остановки jquery, вызывающий переполнение потока ie6
Вот мой старый код (который имеет старую проблему изображения):
if(webImage != 'img/template/slide_web.png') {
$('#slide img').fadeOut(function() {
$(this).load(function() {$(this).fadeIn(); });
$(this).attr('src','img/template/slide_web.png');
});
А вот мой новый код (который решает старую проблему, но приводит к IE6 к переполнению стека на первой линии):
if(webImage != 'img/template/slide_web.png') {
$('#slide img').stop(true, true).fadeOut(function() {
$(this).load(function() {$(this).stop(true, true).fadeIn(); });
$(this).attr('src','img/template/slide_web.png');
});
Я реализую метод stop() неправильно? Или есть другой способ избежать того, что jQuery увянет очередь от потери своего места?
Спасибо, это сделало вещи немного более стабильными, однако теперь я получаю переполнение стека в ie6 всякий раз, когда я «прерываю» затухание одного изображения, начиная другое. Это возвращает меня к мысли о функции stop(). – Nick
На данный момент я только что заменил свой код на этот плагин, отлично работает :) http://www.hieu.co.uk/blog/index.php/imageswitch/ – Nick
@Nick - (Привет, другой Nick!) Это зависит на эффекте, но я думаю, что вам нужно было бы '.stop (true)' в этом случае, а не сначала попробовать и завершить текущую анимацию, что и делает второй аргумент :) –