2017-09-29 34 views
-2

我正在使用jQuery和一些rangeslider.js制作具有不同价格的滑块。我使所有的工作,但后两个数字只有当我移动滑块,而不是当我检查复选框时更改。当我点击复选框时,我正在尝试改变数字。Jquery复选框被选中?

$(document).on('input change', '#range-slider', '#voiceover', function() { //Listen to slider changes (input changes)  

    var v=$(this).val(); 
    var voiceOption = $('#voiceover');//Create a Variable (v), and store the value of the input change (Ex. Image 2 [imageURL]) 
    console.log(v); 

$('#sliderStatus').html(videoDuration[v]); 
$('#sliderPrice').html('<span>$'+videoSubtotal[v]+'.00</span>'); 

var totalPrice = parseInt(voiceoverSubtotal[v])+parseInt(videoSubtotal[v]); 
    if(voiceOption.is(":checked")){ 
    $('#voiceoverspan').html('<span>$'+voiceoverSubtotal[v]+'.00</span>'); 
     $('#totalspan').html('<span>$'+totalPrice+'.00</span>'); 
    } 
    else{ 
    $('#voiceoverspan').html('<span>$0.00</span>'); 
    $('#totalspan').html('<span>$'+videoSubtotal[v]+'.00</span>'); 
    } 

    /*if(voiceOption.is(":checked")){ 
    $('#totalspan').html('<span>$'+totalPrice+'.00</span>'); 
    } 
    else{ 
    $('#totalspan').html('<span>$'+videoSubtotal[v]+'.00</span>'); 
    }*/ 
}); 

非常感谢你我的codepen是在这里:https://codepen.io/2cheeky4you/pen/QqGKpy

回答

-1

更新CodePen:https://codepen.io/bhansa/pen/aLwGZo

你应该在if语句change事件添加到您的复选框,并更新HTML数据。 保持您的复选框更改方法超出input#range-slider更改方法。

v = $("input#range-slider").val(); 

voiceOption.on("change", function(){ 
    if(voiceOption.is(":checked")){ 
    $('#voiceoverspan').html('<span>$'+voiceoverSubtotal[v]+'.00</span>'); 
     $('#totalspan').html('<span>$'+totalPrice+'.00</span>'); 
    } 
    else{ 
    $('#voiceoverspan').html('<span>$0.00</span>'); 
    $('#totalspan').html('<span>$'+videoSubtotal[v]+'.00</span>'); 
    } 
    }); 
+0

这适用于复选框,但它不会随着滑块而改变。 –

+0

如果您还想通过滑块更改旁白价格,请在滑块值更改方法中添加代码。你不能把两个事件放在一起,这是我的观点。 – bhansa

+0

哦!这更有意义!非常感谢! –

-1

您需要的变化事件作出反应的复选框:

$("#voiceover").on("change", doUpdate); 
-1

的问题是,所有的代码都被包裹在滑块的变化事件。

$(document).on('input change', '#range-slider', '#voiceover', function() { //Listen to slider changes (input changes)  

这意味着只有当滑块也改变时,复选框更改的检查才会发生。移动此行

}); 

超出您的评论代码。然后像这样在底部格式化注释的代码。

$('#checkBoxId').on('click', function() { 
    if(this.checked) { 
     if(voiceOption.is(":checked")){ 
      $('#totalspan').html('<span>$'+totalPrice+'.00</span>'); 
     } 
     else { 
      $('#totalspan').html('<span>$'+videoSubtotal[v]+'.00</span>'); 
     } 
    } 
}); 
+0

我试过了,它说:非法令牌,非法。我怎么会这样做 –