Ответ 1
Вы также можете попробовать
$(function() {
$("#t20ContentRightWrapper").toggle("slide", { direction: "right" }, 400);
});
Я вижу странное поведение на веб-странице... Я включил jQuery (и jQuery UI), используя обычные теги script. Когда загружается страница, я вижу, что файл загружен (из кеша локального браузера, так как в файле есть далеко идущие заголовки Expires).
Однако, похоже, что сам jQuery инициирует новый сетевой запрос для повторной загрузки, включая случайное значение параметра, которое заставляет файл загружаться (т.е. не использовать кэшированную версию).
Снимок экрана с вкладки сети Chrome:
Это очень странно... что здесь происходит?
UPDATE: Код, запускающий это поведение, следующий:
$(window).load(function() {
$("#t20ContentRightWrapper").toggle("slide", { direction: "right" }, 400);
});
Если я заменил его на это, "двойная загрузка" исчезнет:
$(window).load(function() {
$("#t20ContentRightWrapper").toggle("fade", 400);
});
Итак, в основном, когда я использую анимацию "слайд", jQuery и jQuery UI получают перезагрузку с дополнительными сетевыми запросами, в то время как использование анимации "Fade" не работает.
Я хочу использовать анимацию "слайд", поэтому мне нужно знать, что происходит здесь...!
ОБНОВЛЕНИЕ 2: Вот скриншот, показывающий стек вызовов при наведении указателя мыши на "Инициатор" script в Chrome:
Вы также можете попробовать
$(function() {
$("#t20ContentRightWrapper").toggle("slide", { direction: "right" }, 400);
});
Вы проверили содержимое обратного вызова? Я знаю, это звучит очевидно, но вы уверены, что библиотека jquery не содержится в html, возвращаемом из обратного вызова ajax. Это была бы самая вероятная причина для его загрузки дважды. Проверьте ответ обратного вызова и посмотрите, загружается ли он оттуда.
Трудно сказать без полного кода страницы, я предполагаю, что код jQuery включен внутри перегруженного контейнера
попробовал использовать slideToggle(), может быть, что-то вроде:
$(window).load(function() {
$("#t20ContentRightWrapper").slideToggle();
});
По умолчанию эффект движения слайда по умолчанию равен 400
Документация jQuery содержит следующее предупреждение для метода . load() -
Модуль Ajax также имеет метод с именем .load(). Какой из них уволен зависит от множества переданных аргументов.
Вы могли бы попробовать это вместо этого, чтобы исключить любую двусмысленность
$(window).on("load", function(){
$("#t20ContentRightWrapper").toggle("slide", { direction: "right" }, 400);
});
Вы пытались заменить содержимое # t20ContentRightWrapper простым абзацем? Если это исправлено, вы можете вынуть часть содержимого, чтобы найти бит-бит. Возможно, у вас есть два элемента с одинаковым идентификатором. Вы также можете попробовать переустановить и заменить файл jquery.js. Вы все равно можете получить 1.7.1 от github. Но я бы попробовал и текущую версию, и сохранил ее, если она не сломает материал, если бы я был вами.
Если проблема не исчезнет, было бы полезно, если бы вы могли сказать, какие браузеры/ОС и версии могут это воспроизвести?
Функция загрузки означает нечто иное, чем я думаю, что вы ожидаете:
Этот метод является самым простым способом получения данных с сервера. Это примерно эквивалентно $.get(url, data, success), за исключением того, что это скорее метод, чем глобальная функция, и он имеет неявную функцию обратного вызова. Когда обнаружен успешный ответ (т.е. Когда textStatus является "успехом" или "не изменен" ),.load() устанавливает содержимое HTML сопоставленного элемента в возвращаемые данные. Это означает, что большинство применений метода может быть довольно простым:
возможно, вы хотите использовать это вместо:
`
$(function() {
$("#t20ContentRightWrapper").toggle("slide", { direction: "right" }, 400);
});
`