2017-09-29 9 views
-2

私はjQueryと少しのrangeslider.jsを使って価格の異なるスライダーを作っています。私はすべてがうまくいくようにしましたが、2番目の2つの数字は、スライダを動かすときだけ変化し、チェックボックスをチェックしたときは変わりません。私は、チェックボックスをクリックすると、数字が正しく変更されるようにしようとしています。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文で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

私はそれを試してみました:予期しないトークン、ILLEGAL。どのように私はそれをficだろう –

関連する問題