【问题标题】:Reload/refresh jquery ui slider with checkbox checking使用复选框检查重新加载/刷新 jquery ui 滑块
【发布时间】:2014-06-04 03:53:31
【问题描述】:

我对 jquery ui 滑块和复选框有一点问题。

完整代码如下:

$(function() {
var slider = function(event,ui){
    var currentvalue = ui.value || $( this ).slider( "option", "value" );

    if ( $('#netocheck').prop("checked") ){

        var tooltip = $(".tooltip").html(currentvalue + "€");
        var neto = $( ".neto" ).html(currentvalue);
        var fond = $( ".fond" ).html(currentvalue + 1000);
        var sotsiaalmaks = $( ".sm" ).html((currentvalue * 33) / 100);
        var tulumaks = $( ".tm" ).html((currentvalue * 21) / 100);
        var kl = $( ".kl" ).html((currentvalue * 2) / 100);
        var bruto = $( ".bruto" ).html(currentvalue);
    }
    else ( $('#brutocheck').prop("checked") ) {

        var tooltip = $(".tooltip").html(currentvalue + "€");
        var bruto = $( ".bruto" ).html(currentvalue + "€");
        var neto = $( ".neto" ).html("neto");
    }

};

$('input.check').on("change", function() {
    $("input.check").not(this).prop("checked", false);
});

$("#slider-range").slider({
  value: 1000,
  min: 100,
  max: 2000,
  step: 100,
  slide: slider,
  create: slider    
});

});

我希望每次我选中两个复选框之一时,这个 IF 部分(可能还有整个滑块)都能正常工作。因此,选中一个复选框会为变量添加一些值,而选中另一个复选框会为相同的变量添加不同的值。

我添加的部分:

if ( $('#netocheck').prop("checked") ){

        var tooltip = $(".tooltip").html(currentvalue + "€");
        var neto = $( ".neto" ).html(currentvalue);
        var fond = $( ".fond" ).html(currentvalue + 1000);
        var sotsiaalmaks = $( ".sm" ).html((currentvalue * 33) / 100);
        var tulumaks = $( ".tm" ).html((currentvalue * 21) / 100);
        var kl = $( ".kl" ).html((currentvalue * 2) / 100);
        var bruto = $( ".bruto" ).html(currentvalue);
    }
    else ( $('#brutocheck').prop("checked") ) {

        var tooltip = $(".tooltip").html(currentvalue + "€");
        var bruto = $( ".bruto" ).html(currentvalue + "€");
        var neto = $( ".neto" ).html("neto");
    }

还有复选框:

<span class="check1"><input id="netocheck" class="check" type="checkbox" checked>1</span>
<span class="check2"><input id="brutocheck" class="check" type="checkbox">2</span>

【问题讨论】:

  • 我是 JS 初学者,所以要温柔

标签: jquery user-interface checkbox slider


【解决方案1】:

这很难看,但有效。

var slider = function(event,ui){    
var currentvalue = ui.value || $( this ).slider(  "value" );
 slideChange(currentvalue);
};
function slideChange(currentvalue){

  if ( $('#netocheck').prop("checked") ){

        var tooltip = $(".tooltip").html(currentvalue + "€");
        var neto = $( ".neto" ).html(currentvalue);
        var fond = $( ".fond" ).html(currentvalue + 1000);
        var sotsiaalmaks = $( ".sm" ).html((currentvalue * 33) / 100);
        var tulumaks = $( ".tm" ).html((currentvalue * 21) / 100);
        var kl = $( ".kl" ).html((currentvalue * 2) / 100);
        var bruto = $( ".bruto" ).html(currentvalue);
    }
    else if( $('#brutocheck').prop("checked") ) {

        var tooltip = $(".tooltip").html(currentvalue + "€");
        var bruto = $( ".bruto" ).html(currentvalue + "€");
        var neto = $( ".neto" ).html("neto");
    }
}

var options = {  
  value: 1000,
  min: 100,
  max: 2000,
  step: 100,
  slide: slider,
  create: slider,
   change:slider    
};

$('input.check').on("change", function() {  
     $("input.check").not(this).prop("checked", false);
     slideChange($("#slider-range").slider('value'));
});

$("#slider-range").slider(options);

例如:JSFIDDLE

【讨论】:

  • 有人知道如何让它变得更简单吗?
  • 我认为没有其他方法可以触发幻灯片事件...我尝试了this 解决方案,但它对我不起作用。可能是 JQuery UI 版本问题...
  • 哦。我现在试着理解它。
  • 我让阅读/理解jsfiddle.net/7BDta/1 变得更容易了@ 为什么你把“选项”变量和“更改:滑块”部分放在那里?
  • 我已经把“change:slider”放在滑块的值发生变化时执行滑块功能。这和“slide”不一样,因为值可以改变,哦是的,没有任何滑动......顺便说一下,我认为它可以运行两次滑块功能,所以“slide:slider”不再需要...... . 没试过,随便玩jsfiddle吧!
【解决方案2】:

你的 IF 部分缺少一个 if

if ( $('#netocheck').prop("checked") ){

    var tooltip = $(".tooltip").html(currentvalue + "€");
    var neto = $( ".neto" ).html(currentvalue);
    var fond = $( ".fond" ).html(currentvalue + 1000);
    var sotsiaalmaks = $( ".sm" ).html((currentvalue * 33) / 100);
    var tulumaks = $( ".tm" ).html((currentvalue * 21) / 100);
    var kl = $( ".kl" ).html((currentvalue * 2) / 100);
    var bruto = $( ".bruto" ).html(currentvalue);
}
else if( $('#brutocheck').prop("checked") ) {

    var tooltip = $(".tooltip").html(currentvalue + "€");
    var bruto = $( ".bruto" ).html(currentvalue + "€");
    var neto = $( ".neto" ).html("neto");
}

【讨论】:

  • 如果我点击两个复选框之一,它将加载/启动该滑块变量或该 ui 函数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-07
  • 2012-03-10
相关资源
最近更新 更多