0

flexsliderを使用 してカスタム スライダーを作成しています。人が箇条書きのナビゲーション部分をクリックしたときにスライド番号を取得したいだけです。

controlNavigation セクションでさまざまな方法を試します

 controlNav: {
    setup: function() {
      if (!slider.manualControls) {
        methods.controlNav.setupPaging();
      } else { // MANUALCONTROLS:
        methods.controlNav.setupManual();
      }
    },
    setupPaging: function() {
      var type = (vars.controlNav === "thumbnails") ? 'control-thumbs' : 'control-paging',
          j = 1,
          item;

      slider.controlNavScaffold = $('<ol class="'+ namespace + 'control-nav ' + namespace + type + '"></ol>');

      if (slider.pagingCount > 1) {
        for (var i = 0; i < slider.pagingCount; i++) {
          item = (vars.controlNav === "thumbnails") ? '<img src="' + slider.slides.eq(i).attr("data-thumb") + '"/>' : '<a>' + j + '</a>';
          slider.controlNavScaffold.append('<li>' + item + '</li>');
          j++;
        }
      }

      // CONTROLSCONTAINER:
      (slider.controlsContainer) ? $(slider.controlsContainer).append(slider.controlNavScaffold) : slider.append(slider.controlNavScaffold);
      methods.controlNav.set();

      methods.controlNav.active();

      slider.controlNavScaffold.delegate('a, img', eventType, function(event) {
        event.preventDefault();
        var $this = $(this),
            target = slider.controlNav.index($this);

        if (!$this.hasClass(namespace + 'active')) {
          slider.direction = (target > slider.currentSlide) ? "next" : "prev";
          slider.flexAnimate(target, vars.pauseOnAction);
        }
      });
      // Prevent iOS click event bug
      if (touch) {
        slider.controlNavScaffold.delegate('a', "click touchstart", function(event) {
          event.preventDefault();
        });
      }
    },
    setupManual: function() {
      slider.controlNav = slider.manualControls;
      methods.controlNav.active();

      slider.controlNav.live(eventType, function(event) {
        event.preventDefault();
        var $this = $(this),
            target = slider.controlNav.index($this);

        if (!$this.hasClass(namespace + 'active')) {
          (target > slider.currentSlide) ? slider.direction = "next" : slider.direction = "prev";
          slider.flexAnimate(target, vars.pauseOnAction);
        }
      });
      // Prevent iOS click event bug
      if (touch) {
        slider.controlNav.live("click touchstart", function(event) {
          event.preventDefault();
        });
      }
    },
    set: function() {
      var selector = (vars.controlNav === "thumbnails") ? 'img' : 'a';
      slider.controlNav = $('.' + namespace + 'control-nav li ' + selector, (slider.controlsContainer) ? slider.controlsContainer : slider);
    },
    active: function() {
      slider.controlNav.removeClass(namespace + "active").eq(slider.animatingTo).addClass(namespace + "active");
    },
    update: function(action, pos) {

      if (slider.pagingCount > 1 && action === "add") {
        slider.controlNavScaffold.append($('<li><a>' + slider.count + '</a></li>'));
      } else if (slider.pagingCount === 1) {
        slider.controlNavScaffold.find('li').remove();
      } else {
        slider.controlNav.eq(pos).closest('li').remove();
      }
      methods.controlNav.set();
      (slider.pagingCount > 1 && slider.pagingCount !== slider.controlNav.length) ? slider.update(pos, action) : methods.controlNav.active();
    }
  },

しかし、運がありませんでした。これを達成する方法を誰かが知っているなら、私を助けてください。前もって感謝します。

4

1 に答える 1

1

解決策を見つけました。私にとっては本当に時間がかかりました...アクティブ関数では、次のように次のアニメーションスライド番号を取得できます.(いつかこれが私のような人に役立つことを願っています)

active: function() { slider.controlNav.removeClass(namespace + "active").eq(slider.animatingTo).addClass(namespace + "active"); alert(slider.animatingTo) },

于 2013-03-18T10:41:49.640 に答える