0

スライドするとコンテナ内の別のdivを移動するjqueryハンドルを作成しようとしています。以下は私のjsです

function handleSliderChange(e, ui)
{
    console.log('1');
    var maxScroll = $(".content-item").width()*$(".content-item").length - $("#content-scroll").width();
    $("#content-scroll").animate({scrollLeft: ui.value * (maxScroll / 100) },1000);
}

function handleSliderSlide(e, ui)
{
    console.log('2');
    var maxScroll = $(".content-item").width()*$(".content-item").length - $("#content-scroll").width();
    $("#content-scroll").animate({scrollLeft: ui.value * (maxScroll / 100) }, 10);
}

    $("#content-slider").slider({
        animate: true,
        slide: handleSliderSlide,
        change: handleSliderChange
    });

したがって、バーをクリックすると、handleSliderChangeとhandleSliderSlideの両方が呼び出されますが、スライダーをドラッグすると、どのソリューションでも問題なく機能しますか?スライダーからクリック機能をキャンセルしてもかまいません。とにかくドラッグするだけです。

4

1 に答える 1

0

その解決策を見つけました。トリックは、メソッドを実行する前に、どのタイプのイベントがトリガーされるかを確認することです。これは私がそれをした方法です

sliderBar.slider({
                start: checkType,
                animate: options.animateSpeed,
                slide: handleSliderSlide,
                step: options.step,
                change: handleSliderChange,
                });

function checkType(e){
            _isSlide = $(e.originalEvent.target).hasClass("ui-slider-handle");
        }
于 2013-03-05T08:31:45.303 に答える