Слайдер Jquery предыдущий и следующий странный по двойному щелчку

0

Я создаю простой аккордеон с использованием jQuery, пока он выглядит неплохо, но он действует странно при двойном щелчке или даже при нажатии более двух раз. За исключением того, что он просто закрывается, он начинает открывать и закрывать в зависимости от того, сколько раз было нажато. Мысль о реализации переменной, что-то вроде if (! Hasbeenclicked), но не уверен, что это сработает. Поэтому в основном я задаюсь вопросом, как предотвратить двойное нажатие кнопки, если щелкнуть снова по той же опции, просто закройте сам. "SliderClass:" прокручиваемый ", prevbutton:" предыдущий ", следующий элемент:" следующий ", продолжительность: 5000, slideCount: 3, prevText: 'Previous', nextText: 'Next', clickTiming: 5000,

initSlider : function(sliderObject, direction, eventType) {

    slideCount = this.slideCount;
    slideWidth = sliderObject.find('li:first-child').outerWidth(true);


    var lefVal = slideWidth * slideCount;


    if (direction == 'moveLeft')
        lefVal = -lefVal;


    if (sliderObject.attr("class").indexOf("autoScroll") >= 0) {
        var all_classes = sliderObject.attr("class");
        if (all_classes.length > 1) {
            var auto_scroll_time = all_classes.match(/\d+/)[0];
            auto_scroll_time = parseInt(auto_scroll_time.split("autoScroll").join(""));
            interval_duration = auto_scroll_time * this.duration;

        }
    }

    function slideAnimate() {
        if (eventType == 1)
            var animateTime = this.duration;
        else
            var animateTime = this.duration;

        sliderObject.animate({
            left : lefVal
        }, this.duration, function() {

            var counter = 0;
            sliderObject.children().each(function() {

                if (counter < slideCount) {
                    $(this).appendTo(sliderObject);

                }
                counter++;
            });

            sliderObject.css('left', '');
        });
    }

    if (eventType == 1) {

        setInterval(function() {
            slideAnimate()
        }, interval_duration);
    } else
        slideAnimate();
    // When called from normal click

},
init : function() {


    $('.' + this.prevbutton).live('click', function() {
        customSlider.initSlider($(this).prev(), 'moveRight', 2);
        $(this).unbind("click");

    });
    /**
     *Intialize next click
     */
    $('.' + this.nextbutton).live('click', function() {
        customSlider.initSlider($(this).prev().prev(), 'moveLeft', 2);

    });


    $('.' + this.sliderClass).each(function() {

        customSlider.initSlider($(this), 'moveLeft', 1);

    })
}

};

jQuery (document).ready(function ($) {

customSlider.init();

});"

  • 1
    Можете ли вы создать JSFiddle для нас, пожалуйста?
  • 0
    Могу ли я получить какую-либо помощь ... Это действительно срочное задание ... !!
Теги:

1 ответ

0
Лучший ответ

Я добавил свойство boolean в ваш объект customSlider, называемый sliding. Это получает значение true/false в зависимости от того, сколь или слайдер скользит в данный момент, тем самым предотвращая эти слайды с двойным/тройным щелчком.

http://jsfiddle.net/wT8FX/1/

Надеюсь, это поможет!

  • 0
    Большое спасибо Дэвид .. ты спас меня много ... !!! Действительно спасибо..!!!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню