【问题标题】:jQuery UI-slider changing "max" valuejQuery UI-slider 改变“最大值”值
【发布时间】:2014-12-12 14:43:40
【问题描述】:

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

$('#slider-range-max2').slider("option", "max", 300);

如果我在其中输入一个数字(如 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);
});

【问题讨论】:

  • 你试过$('#slider-range-max2').slider("option", "max", parseInt(currentBankroll));
  • 你已经定义了两次slide属性,这会导致问题。
  • 我尝试了“parseInt”,但没有成功。
  • var c = 5; $('#slider-range-min').slider("option", "max", c); - 我刚刚在自己的代码中对此进行了测试,它似乎工作正常。就像@RoryMcCrossan 说你有slide() 定义了两次,但除此之外我不明白为什么上面的代码不起作用。你有任何错误吗?

标签: javascript jquery jquery-ui


【解决方案1】:

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

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

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

 $('#slider-range-max2').slider("option", "max", currentBankroll);

【讨论】:

  • 我不确定在代码中的什么位置放置这个函数,我似乎无法让它工作?
  • $(function() { 之后的某个地方,然后每当您的代码更改时 currentBankroll 在该代码中调用此函数 - currentBankrollChange(currentBankroll);
  • 或者当玩家当前资金发生变化时,您可以致电$('#slider-range-max2').slider("option", "max", currentBankroll);
  • 我按照描述尝试过,但出现错误:ReferenceError: currentBankrollChange is not defined
  • 好的,你需要在调用它之前定义函数,所以它可以被调用——即在你的代码中更高。尝试在$(function(){之后直接放入
猜你喜欢
  • 2013-09-18
  • 2020-01-31
  • 1970-01-01
  • 1970-01-01
  • 2012-01-28
  • 1970-01-01
  • 1970-01-01
  • 2013-04-11
  • 2014-03-31
相关资源
最近更新 更多