jQuery UI 滑块更改“最大”值

Pix*_*aul 1 javascript jquery jquery-ui

我正在将 jQuery UI 滑块用于我正在处理的赌场游戏项目。我需要能够根据玩家当前的资金来更改“最大”值。起初,滑块工作正常,它将“最大”滑块值设置为 1000,玩家开始注资。当 'currentBankroll' 变量发生变化时,滑块的“max”值不会更新。我插入了一个 console.log() 代码行来检查变量 'currentBankroll' 的值,这确认该值正在改变,但滑块的“max”值保持在初始值 1000 并且不会更新。为了进一步混淆我,我尝试了一个解决方案,我在这里找到了更改“max”值的方法。

$('#slider-range-max2').slider("option", "max", 300);
Run Code Online (Sandbox Code Playgroud)

如果我在其中输入一个数字(如 300),这行代码将更改滑块的“最大”值,但如果我使用变量(如“currentBankroll”)则不起作用。如何使用变量更改滑块值?

$(function() {
    console.log("Current Bankroll: " + currentBankroll);
    $("#slider-range-max2").slider({
        range: "max",
        max: 0,
        min: 1,
        max: currentBankroll,
        value: 2,
        slide: function( event, ui ) {
            $("#amount").val( ui.value );
            sliderValue = (ui.value);
        },
        slide : function(event, ui) {
            skillLevelSlots(ui.value);
            wagerAmount = (ui.value);
            $('.wager').html("$" + wagerAmount);
        }
    });
    $('#slider-range-max2').slider("option", "max", 300);
});
Run Code Online (Sandbox Code Playgroud)

Cra*_*ack 5

正确 - 您正在某个时间定义滑块并使用 currentBankroll 设置最大值。这是创建滑块时的值,但除非您重新创建它,否则不会更改。为了让它改变,每当你的 currentBankroll 改变时,你可以调用一个改变值的函数。

function currentBankrollChange(currentBankroll){
     $('#slider-range-max2').slider("option", "max", currentBankroll);
}
Run Code Online (Sandbox Code Playgroud)

或者当玩家资金发生变化时,您可以调用:

 $('#slider-range-max2').slider("option", "max", currentBankroll);
Run Code Online (Sandbox Code Playgroud)