Я включил необходимые файлы и попытался запустить слайд-шоу. Вроде бы визуально работает, но:

var $x = $("#mydiv").slideshow();

Возвращает undefined вместо объекта, управляющего шоу. Когда использую jqui 1.8, все нормально. Проблема, похоже, связана с частью виджета , то есть jquery.ui.widget.js , поэтому, прежде чем я погрузюсь в ее исправление, я хотел бы спросить о двух вещах :

  1. Кто-нибудь сталкивался с такой же проблемой?
  2. Есть ли исправление?

Спасибо, ДК

0
dkellner 13 Фев 2014 в 18:36
2 вещи, которые я знаю теперь точно: 1: проблема в jquery.ui.widgets.js, 2: любая версия с 1.9 все еще выполняет свою работу, а 1.10 теряет ее.
 – 
dkellner
13 Фев 2014 в 19:16

1 ответ

Лучший ответ

Я только что установил jsfiddle , и все, похоже, работает с:

  • jquery-1.10.2
  • jquery.ui.core (из jquery-ui 1.10.4)
  • jquery.ui.widget.js (из jquery-ui 1.10.4)
  • jquery.rf.slideshow (последний выпуск 1.1.1 из репозитория rpflorence)

Откройте jsfiddle , откройте консоль js (F12), перезагрузите страницу и вы увидите, что

<div id="slideshow" class="slideshow">

Появляется в консоли (нет undefined)

РЕДАКТИРОВАТЬ:

Я пока не знаю, почему вызов виджета без параметра не возвращает сам экземпляр. Я постараюсь подробнее изучить этот вопрос.

Но начиная с jQueryUI 1.9 и далее вы можете получить экземпляр виджета используя .data() и полное имя виджета (включая пространство имен), которое в вашем случае:

var $ss = $('#slideshow').slideshow().data('rf-slideshow');

Я отредактировал jsFiddle , чтобы отразить это.

1
rd3n 17 Фев 2014 в 02:57
Спасибо за скрипку! Да, я пробовал использовать метод data () (плюс еще пара вещей). Но я никогда не проверял с 10.4 так что может они что-то исправили ... Проверяю прямо сейчас!
 – 
dkellner
17 Фев 2014 в 01:48
Хорошо, я обновил скрипку, jsfiddle.net/TjUHZ/2 - по-прежнему написано "undefined" . Кроме того, с вашей исходной скрипкой возвращается сам div, но это не то, что должно быть. $ ss должен быть ab OBJECT, способным управлять слайд-шоу с помощью таких методов, как prev / next и т. д. Возврат самого div является признаком того, что он не работает. Если вы попробуете сделать то же самое с jqui 1.9, он даст вам объект, как должен.
 – 
dkellner
17 Фев 2014 в 01:55
Я добавил "setInterval (function () {console.log ($ ss.current);}, 2000);" и он показывает фактический индекс отображаемого в данный момент изображения! СПАСИБО! Ваша последняя строка сработала, действительно, она связана с пространством имен "rf-slideshow". Теперь важным дополнением является то, что они ДЕЙСТВИТЕЛЬНО изменили одну вещь с 1.9.x на 1.10: см. bugs.jqueryui .com / ticket / 8155 для заявки, они удалили свойство, на которое частично полагается ползунок RF. Очевидно, это проблема, но теперь с этим решением data () я могу использовать ползунок RF. Так что еще раз спасибо!
 – 
dkellner
17 Фев 2014 в 04:42