2013-07-17 39 views
0

使用jQuery我改变无线电输入的(这是一个拨动开关)的颜色,当它是绿色的,当关闭其黑..更改所有单选按钮,我的代码只更改第一个?

小提琴:http://jsfiddle.net/SDhfp/1/(仅第一,色彩变化“有求必应”但是当第一个做另一种只改变..其不是自己更改功能)

下面是HTML:

<fieldset class="buttonset"> 
    <span class="toggle-bg" id="responsive" style="background-color: rgb(70, 182, 146);"> 

    <input type="radio" checked="checked" value="1" class="switch-input" name="responsive" id="responsive_0"> 
    <input type="hidden" value="responsive" class="switch-id-value"> 

    <input type="radio" value="0" class="switch-input" name="responsive" id="responsive_1"> 
    <input type="hidden" value="responsive" class="switch-id-value"> 

    <span class="switch ui-buttonset"></span></span> 
</fieldset> 

namevalueinput id都是动态的,所以另一切换单选按钮的namevalueinput id将是独一无二的......

这里是jQuery的:只瞄准的是第一个单选按钮这恰好是标记上面responsive这是我有很多按钮中的第一个单选按钮...

jQuery('.toggle-bg').on('change', function() { 
var value = jQuery('.toggle-bg input.switch-id-value').val(), 
    moon1 = jQuery('#' + value + '_0').is(':checked'), 
    slider = jQuery('._moon_staticarea_height'), 
    toggle = jQuery('.toggle-bg '); 

toggle.css('background-color', (moon1 ? '#46b692' : '#333')); 
slider[moon1?'slideUp':'slideDown'](); 
}).trigger('change'); 

我不知道如何只改变动态创建的按钮的ID?我试图使我的元素选择输出...

小提琴:http://jsfiddle.net/SDhfp/1/

+1

跨度没有变化事件,没有什么可以改变的? – adeneo

回答

2

您需要使用this,而不是事件中引用的类。

jQuery('.toggle-bg').on('change', function() { 
    var value = jQuery('input.switch-id-value',this).val(), 
     moon1 = jQuery('#' + value + '_0').is(':checked'), 
     slider = jQuery('._moon_staticarea_height'), 
     toggle = jQuery(this); 

    toggle.css('background-color', (moon1 ? '#46b692' : '#333')); 
    slider[moon1 ? 'slideUp' : 'slideDown'](); 
}).trigger('change'); 

jsFiddle example

+0

好酷..我执行它,在这个小提琴http://jsfiddle.net/SDhfp/4/切换bg遵循第一个.. – Mike

+0

你的小提琴是bea-utiful ..有什么区别 – Mike

+0

哦,我看到它现在 – Mike