2012-01-03 157 views
0

我与此代码的工作:(更新)带有2个类的JQuery toggleClass?

<script> 
$(function(){ 
//Radio Item 1 
$("#radio1").change(function() { 

$("#defaultwrapper").addClass("background_color_selected"); 
$("#default_wrapper").removeClass("def_background_color"); 

}); 

//Radio Item 2 
$("#radio2").change(function() { 

$("#default_wrapper2").addClass("background_color_selected"); 
$("#default_wrapper2").removeClass("def_background_color"); 

}); 



}); 
</script> 

我的问题是,我需要选择的无线电的背景颜色改变,它不是现在

+4

你有没有看看文档? http://api.jquery.com/toggleClass/。它清楚地表明:*“** className **为匹配集中的每个元素切换一个或多个类名称(以空格分隔)。”*。或者,如果您不希望添加两个类,请调用'toggleClass'两次,或省略该标志。 – 2012-01-03 10:16:20

+0

虽然是一个布尔值,只会添加或删除它们的_both_。 – 2012-01-03 10:18:04

回答

1

(更新) 在jQuery的电台时未选择任何事件。尝试创建全局处理程序:

$(function(){ 
    $("input[type=radio]").change(function() { 
     $("input[type='radio']", $(this).parent().parent()).each(function() { 
      $(this).parent() 
       .toggleClass("background_color_selected", this.checked) 
       .toggleClass("def_background_color", !this.checked); 
     }); 
    }); 
}); 

对于HTML:

<div> 
    <div class="def_background_color"><input type="radio" id="radio1" name="aaa" /> One</div> 
    <div class="def_background_color"><input type="radio" id="radio2" name="aaa" /> Two</div> 
</div> 

工作样本:http://jsfiddle.net/THrYJ/

2
$(function(){ 
     $("#myradio").change(function() { 
    $("#wrapper").toggleClass("classOne", this.checked).toggleClass("classTwo", !this.checked) 
     }).change(); 
    }) 
+0

代码已更新 – Satch3000 2012-01-03 10:42:06

1

如果切换首先有classOne(fe <div class="classOne" id="test">Text</div>),您可以像这样切换课程:$("#test").toggleClass("classOne classTwo");。这将删除类classOne(因为它目前尚未),它将添加类classTwo(因为它尚未出现)。

1

嗨,我有同样的问题,但是这是我在我的项目已经做了...

<script> 
    $(".rtPanhold01").addClass("rtPanhold02"); 
     $(".rtPanhold01").removeClass("rtPanhold01"); 
</script> 
+0

代码已更新 – Satch3000 2012-01-03 10:42:13