Запуск «следующего» кадра в слайдере кода Найла Доэрти 2.0 - Возможно с использованием события javascript .change? - PullRequest
1 голос
/ 22 декабря 2010

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

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

$(document).ready(function()  
 {  
  $('#radioButton').change(function(){  
   GO TO THE NEXT FRAME  
  });  
 })  

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

    $('#coda-nav-right-' + sliderCount + ' a').click(function(){
        navClicks++;
        if (currentPanel == panelCount) {
            offset = 0;
            currentPanel = 1;
            alterPanelHeight(0);
            slider.siblings('.coda-nav').find('a.current').removeClass('current').parents('ul').find('a:eq(0)').addClass('current');
        } else {
            offset = - (panelWidth*currentPanel);
            alterPanelHeight(currentPanel);
            currentPanel += 1;
            slider.siblings('.coda-nav').find('a.current').removeClass('current').parent().next().find('a').addClass('current');
        };
        $('.panel-container', slider).animate({ marginLeft: offset }, settings.slideEaseDuration, settings.slideEaseFunction);
        if (settings.crossLinking) { location.hash = currentPanel }; // Change the URL hash (cross-linking)
        return false;
    });

Это сочетание того, что я очень посредственный с javascript и довольно незнаком с кодом Найла. Это хорошо прокомментировано, но я не могу точно сказать, что происходит в каждой строке. Когда я вижу, я не совсем уверен, как сделать то же самое с моей функцией .change.

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

1 Ответ

1 голос
/ 22 декабря 2010

Вы можете программно щелкнуть ссылку, используя функцию no-args click() в jQuery.Предполагая, что вы используете ту же настройку, что и в большинстве примеров, вы сможете написать что-то вроде этого:

HTML:

<input type="radio" id="next-panel" />

JavaScript:

$("#next-panel").bind("change", function() {
    $("#coda-nav-right-1 > a").click();
});

При этом будет щелкнуть ссылку, которая находится в расположении по умолчанию для «правой» ссылки в демоверсиях.Вы можете увидеть рабочий пример здесь: http://jsfiddle.net/andrewwhitaker/WzJMP/

Примечание: Рассматривали ли вы вопрос об использовании jQueryUI tabs ?jQueryUI имеет гораздо более удобный и хорошо документированный API, и вы можете легко воссоздать эффекты и функциональность слайдера Coda.Вы также, вероятно, получите лучшую поддержку на сайтах, таких как StackOverflow.

...