2014-05-08 35 views
0

我正在尝试添加6个不同范围滑块的值并显示结果。 我得到一个数字,因为我期望与此,但我只是想弄清楚如何总结每个滑块的属性。所以当按下按钮时,我会得到所有的全部。不同基础范围滑块的总和值

我创建了一个jsfiddle,但它不起作用。请看这里:http://jsfiddle.net/Ae5Y4/3/

有什么建议吗?

HTML:

<div class="row"> 
<div class="large-6 columns"> 

     <div class="range-slider" data-slider data-options="start: 1; end: 500; display_selector: #SliderOutput1;"> <span class="range-slider-handle"></span> <span class="range-slider-active-segment"></span> <input type="hidden"></div> 
     <div id="SliderOutput1"></div> 
     <div class="range-slider" data-slider data-options="start: 1; end: 250; display_selector: #SliderOutput2;"> <span class="range-slider-handle"></span> <span class="range-slider-active-segment"></span> <input type="hidden"> </div> 
     <div id="SliderOutput2"></div> 
     <div class="range-slider" data-slider data-options="start: 1; end: 200; display_selector: #SliderOutput3;"> <span class="range-slider-handle"></span> <span class="range-slider-active-segment"></span> <input type="hidden"> </div> 
     <div id="SliderOutput3"></div> 

</div> 
<div class="large-6 columns"> 

     <div class="range-slider" data-slider data-options="start: 1; end: 500; display_selector: #SliderOutput4;"> <span class="range-slider-handle"></span> <span class="range-slider-active-segment"></span> <input type="hidden"> </div> 
     <div id="SliderOutput4"></div> 
     <div class="range-slider" data-slider data-options="start: 1; end: 500; display_selector: #SliderOutput5;"> <span class="range-slider-handle"></span> <span class="range-slider-active-segment"></span> <input type="hidden"> </div> 
     <div id="SliderOutput5"></div> 
     <div class="range-slider" data-slider data-options="start: 1; end: 200; display_selector: #SliderOutput6;"> <span class="range-slider-handle"></span> <span class="range-slider-active-segment"></span> <input type="hidden"></div> 
     <div id="SliderOutput6"></div> 


<br/><br/> 

<input type="button" value="Sum" onclick="doMath();" /> 

<br/><br/> 
<div id="myResults"></div> 

JAVASCRIPT:

$(document).foundation(); 


function doMath() 
{ 



    var my_input1 = $('.range-slider').attr('data-slider'); 
    var my_input2 = $('.range-slider').attr('data-slider'); 
    var my_input3 = $('.range-slider').attr('data-slider'); 
    var my_input4 = $('.range-slider').attr('data-slider'); 
    var my_input5 = $('.range-slider').attr('data-slider'); 
    var my_input6 = $('.range-slider').attr('data-slider'); 
    var sum = 0; 

    // Add them together and display 
    var sum = parseInt(my_input1) + parseInt(my_input2) + parseInt(my_input3) + parseInt(my_input4) + parseInt(my_input5) + parseInt(my_input6); 
    document.getElementById('myResults').innerHTML = sum; 


} 

回答

0

的onClick =是不是最好的 - 它可以神不知鬼不觉搞砸了(和非神秘,但我只是不喜欢它)。而应使用JQuery $(...).click(function);类型的点击监控。

Working Fiddle

相关代码:

HTML:

...snip... 
<input type="button" value="sum" id="sum" /> 
...snip... 

和Javascript(只是追加这个在您的JavaScript结束 - 确保它是onReady或类似的运行前):

$("#sum").click(doMath); 

也与这个问题无关I在那里注意一点片状代码;我建议使用ids而不是类或循环遍历类来获取每个成员,而不是仅仅调用它来获取数字。其实我建议你更换整个JavaScript和:

$(document).foundation(); 


     function doMath() 
    { 
     var sum = 0; 
     $('.range-slider').each(function() { 
      sum += parseInt($(this).attr('data-slider')); 
     }); 
     document.getElementById('myResults').innerHTML = sum; 
    } 
$("#sum").click(doMath); 

你就会得到正确的总和,然后,而不是6 *(第一滑块的值)。 Fiddle for this version

0

我是新来的这个框架,所以事情有点混乱。

我试图创建一个滑块来显示总和,我不认为我做了这个正确的滑块看起来破碎。我已经修改了你的javascript,希望将总和分配给一个滑块。 http://jsfiddle.net/Ae5Y4/7/

HTML:

<div class="range-slider-total" data-slider data-options="start: 1; end: 2250; display_selector: #SliderOutput7;"> <span class="range-slider-handle"></span> <span class="range-slider-active-segment"></span> <input type="hidden"></div> 
     <div id="SliderOutput7"></div> 

Javacript:

$(document).foundation(); 


    function doMath() 
{ 
    var sum = 0; 
    $('.range-slider').each(function() { 
     sum += parseInt($(this).attr('data-slider')); 
    }); 
    document.getElementById('myResults').innerHTML = sum; 

    var new_value = sum; 
    $('.range-slider-total').foundation('slider', 'set_value', new_value); 
} 
$("#sum").click(doMath);