Javascript - 如何避免这种倍数功能的同样建议?
问题描述:
我写了一组JavaScript函数,并想知道我是否可以使函数更简单(例如更全局的函数)?Javascript - 如何避免这种倍数功能的同样建议?
我公司是一家集5间切换为,我想编写一个函数toggleOn
和toggleOff
的。我写了这么远是:
function toggleOn1() {
$('#chk1').bootstrapToggle('on');
}
function toggleOff1() {
$('#chk1').bootstrapToggle('off');
}
function toggleOn2() {
$('#chk2').bootstrapToggle('on');
}
function toggleOff2() {
$('#chk2').bootstrapToggle('off');
}
function toggleOn3() {
$('#chk3').bootstrapToggle('on');
}
function toggleOff3() {
$('#chk3').bootstrapToggle('off');
}
// etc.
答
传递jQuery选择到功能
function toggle(selector,state){
$(selector).bootstrapToggle(state);
}
选择器和状态都是字符串。
你可以这样调用
toggle('#chk1','off');
答
任何时候你有一些参数(函数名的一部分,是该函数的代码做什么),这是相同的,那么反过来说“相同”到一个参数:
function toggleGeneric(id, value) {
$('#chk' + id).bootStrapToggle(value);
}
答
喜欢的东西:
function customToggle(element, state) {
$(element).bootstrapToggle(state);
}
+0
关于这个答案的一个注释,你需要在没有jQuery包装器的情况下传递你的元素(就像customToggle(' #chk2','off')) – will
答
您可以通过selector
为一体的function
function toggleOnOff(selector,state){
$(selector).bootstrapToggle(state);
}
参数,或者如果你想改变你不需要通过国家状态基于前一个:
function toggle(selector){
$(selector).bootstrapToggle();
}
参考here
答
尝试这样的事情..
var on = 1;
function toggle() {
if (on == 1) {
$('#chk1').bootstrapToggle('off');
on = 0; }
else if (on == 0) {
$('#chk1').bootstrapToggle('on');
on = 1;
} else {
}
}
答
添加类,每个元素和改变像SEW代码:
$('.chk').on('click', function() {
$(this).bootstrapToggle();
});
切换应该足够聪明,知道之间的区别开关。
'function toggle(what,state){$(what).bootstrapToggle(state);}'??? –
@NiettheDarkAbsol,或者'jQuery-event-binding' – Rayon
你需要看看你的代码,并开始识别它的所有变量,然后编写一个接受这些变量的函数。在这种情况下,元素和它的状态。既然这是一个切换,你甚至不需要'状态'变量。你很清楚如何编写代码,很遗憾看到有这么多人投票回答你的问题...... – rafaelbiten