2017-09-29 166 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

我試過了,它說:非法令牌,非法。我怎麼會這樣做 –