繁体   English   中英

双击jQuery滑块上一个和下一个怪异

[英]Jquery slider previous and next weird on double click

我正在使用jQuery创建一个简单的手风琴,到目前为止看起来不错,但双击或什至两次单击后的行为都很奇怪。 不仅仅是关闭自身,它还会根据点击次数开始打开和关闭。 考虑实现变量,例如if(!hasbeenclicked),但不确定是否可行。 所以基本上我想知道如何防止它双击是否再次单击相同的选项,只是将自身关闭。`sliderClass:“可滚动”,prevbutton:“ previous”,nextbutton:“ next”,持续时间:5000,slideCount:3 ,prevText:“上一个”,nextText:“下一个”,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();

});`

我添加了一个布尔值属性,你叫customSlider对象sliding 根据滑块当前是否在滑动来将其设置为true / false,从而防止出现那些双击/三次单击的幻灯片。

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

希望对您有所帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM