javascript wnumb 如何重置所有其他noUiSliders但用戶正在玩的?



wnumb (1)

我有多個滑塊,他們每個鏈接到表單字段。 當他們中的任何一個被更新,無論是通過拖動或打字,我想重置所有其他。

原因是我希望用戶在嘗試更改另一個滑塊之前將其更改保存到一個滑塊(表單)。 否則,我重置更改。

我不能聽updateset事件,並在另一個滑塊上調用.set() ,因為這會觸發無限循環。

那麼如何重置滑塊而不觸發任何事件呢? 或者任何人有不同的方法?

(根據要求添加代碼)

slider.noUiSlider.on('set', function(values, handle) {
    $(slider).parents('form').siblings('form').find('my-slider').each(function() {
        var values = this.noUiSlider.get();
        var originals = $(this).closest('.mirror-field').toArray();
        values.forEach( function(val, index) {
            if ( ! val.isSame(originals[index].value)) { // val is a 'moment' object
                values[index] = originals[index].value;
            }
        });
        this.noUiSlider.set(values); // this is when chaos is unleashed
    });
});

嘗試使用“幻燈片”

SLIDER1.noUiSlider.on('slide', function(){
    SLIDER2.noUiSlider.set( *defaultvalue* );
    SLIDER3.noUiSlider.set( *defaultvalue* );
    ...
});

“幻燈片”不調用.set()方法,但在某種程度上與“更新”

也許這是你的解決方案:)





nouislider