JQUERY CYCLE - Могу ли я добавить ссылки на страницы к якорям, назначенным на пейджер Cycle? - PullRequest
4 голосов
/ 05 марта 2010

Кажется, я превзошел себя.Все это время я создавал этот симпатичный маленький виджет «последние новости», который исчезал при наведении курсора на каждый якорь.Тогда мой коллега говорит: «Эй, Крис, эти ссылки не работают»

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

Это мой код Cycle:

$('#newsSlider .slides ul').cycle({
    fx:     'fade',
    speed:  1000,
    timeout: 0,
    pager:  '.slides-nav',
    pagerEvent: 'mouseover',
    pagerAnchorBuilder: function(idx, slide) {
        // return sel string for existing anchor
        return '.slides-nav li:eq(' + (idx) + ') a';
    }

Любая помощь будет чрезвычайно ценной.Спасибо всем!

Кристиан

Ответы [ 3 ]

6 голосов
/ 05 марта 2010

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

if (opts.pagerEvent != 'click')
    $a.click(function(){return false;});

Mike

4 голосов
/ 05 марта 2010

v2.80 теперь доступен и включает опцию 'allowPagerClickBubble'. Демонстрация:

http://jquery.malsup.com/cycle/pagerHover2.html

0 голосов
/ 31 марта 2010

Великолепный мальсуп - ты только что вылечил мой горбатый день!

            $.getScript(Cycle, function() {
             try {
                 $('.imageHolder').cycle({ 
                        delay:  cDelay, 
                        speed:  cSpeed,
                        pager: '.swap-thumbnails',
                        pagerEvent: 'mouseover',
                        pauseOnPagerHover: 1,
                        //before: showImageDescription
                        pagerAnchorBuilder: function(idx, slide) {
                            // return sel string for existing anchor
                            return '.swap-thumbnails li:eq(' + (idx) + ') a';
                        },
                        allowPagerClickBubble: true,
                        //pagerClick: function() {alert ('hi')},
                });

             } catch (err) {
                 // Doh!
             }
             function showImageDescription() {
                 $('.image-description').hide();
                 var DescriptionClass = $(this).attr("className");
                 var showClass = '.frontpage-description .' + DescriptionClass;
                 //$(showClass).show();
                 $(showClass).fadeIn('slow');

             }
        });

Вышесказанное сработало для меня. У меня возникают некоторые проблемы с IE8, но я сильно подозреваю, что случайно отключил JavaScript или что-то в этом роде.

Обновление: У меня это хорошо работает в IE8 - попробуйте переместить allowPagerClickBubble перед pagerAnchorBuilder (я понятия не имею, почему это сработало, но сработало)

...