很确定我知道解决方案...会写 .on('change','load', function(){} 正确吗? <-- 测试没有用?所以我取决于你的解决方案:)
Sushanth -- && adeneo 都提出了很好的解决方案,这是优化代码的一个很好的教训......很难选择使用哪个答案,但我知道这将帮助我重新思考我的写作方式...... . 我不知道没有这个论坛我会做什么,我必须在大学里学习这些东西。
这纯粹是出于好奇和提高我的技能的问题,以及让你们有机会展示你们对 jQuery 的知识。也是为了防止任何草率的写作。
我有一个基于收音机的开关盒,标记看起来像这样,id 和开/关值是由我的数组中的值用 PHP 生成的......
<span class="toggle-bg">//This color is the background of the toggle, I need jQuery to change this color based on the state on/off
<input type="radio" value="on" id="_moon_page_header_area1" name="_moon_page_header_area">//this is my on value generated by the array
<input type="hidden" value="_moon_page_header_area" class="switch-id-value">// I create this input because I have multiple checkboxes that have the ID _moon_ARRAYVALUE_area1
<input type="radio" value="off" id="_moon_page_header_area2" name="_moon_page_header_area">// off value
<input type="hidden" value="_moon_page_header_area" class="switch-id-value">//_moon_ARRAYVALUE_area2
<span class="switch"></span>// the switch button that changes
</span>
希望这是有道理的,评论很清楚
这是 jQuery
var value = $('.toggle-bg input.switch-id-value').val()
var moon1 = $('#'+value+'1').is(':checked');
var moon2 = $('#'+value+'2').is(':checked');
var static_slide = $('._moon_staticarea_height');
var toggle = $('.toggle-bg');
if(moon1){
toggle.css({'background-color': '#46b692'});
static_slide.hide()
} else
if (moon2){
toggle.css({'background-color': '#333'});
static_slide.show()
}
$('.toggle-bg').change(function () {
var value = $('.toggle-bg input.switch-id-value').val()
var moon1 = $('#'+value+'1').is(':checked');
var moon2 = $('#'+value+'2').is(':checked');
var static_slide = $('._moon_staticarea_height');
var toggle = $('.toggle-bg');
if(moon1){
toggle.css({'background-color': '#46b692'});
static_slide.slideUp()
} else
if (moon2){
toggle.css({'background-color': '#333'});
static_slide.slideDown()
}
});
它看起来比实际更长,它只是自我重复,一个正在加载,以便它在页面加载时给出正确的颜色,然后在更改函数中我们需要更改颜色..
我该如何编写它,所以我只需要使用一次变量(所以它更干净)有没有更好的方法来优化它......现在想在写完这个之后我可以把它放在一个函数中 .on('load', '改变',函数(){}
我刚才想到了,但是我写了所有这些,所以我要去看看别人的想法......