Javascript-如何避免为同一个应用程序使用多个函数?

Javascript-如何避免为同一个应用程序使用多个函数?,javascript,html,Javascript,Html,我正在编写一组JavaScript函数,想知道是否可以使函数更简单(例如,更全局的函数) 我有一组5个切换,我想为它们编写一个函数toggleOn和toggleOff。到目前为止,我写的是: function toggleOn1() { $('#chk1').bootstrapToggle('on'); } function toggleOff1() { $('#chk1').bootstrapToggle('off'); }

我正在编写一组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.

任何时候,只要您有一些相同的参数(函数名的一部分,函数代码正在做的事情),然后将“相同”转换为参数:

function toggleGeneric(id, value) {
   $('#chk' + id).bootStrapToggle(value);
}
比如:

function customToggle(element, state) {
    $(element).bootstrapToggle(state);
}

将Jquery选择器传递给函数

function toggle(selector,state){
         $(selector).bootstrapToggle(state); 
}
选择器和状态都是字符串

你可以这样称呼它

toggle('#chk1','off');

您可以将
选择器
作为
函数的参数传递

function toggleOnOff(selector,state){
         $(selector).bootstrapToggle(state); 
}
或者,如果要更改基于上一个状态的状态,则不需要传递该状态:

function toggle(selector){
         $(selector).bootstrapToggle(); 
}

参考

试试这样的方法

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();
});

Toggle应该足够聪明,可以知道开/关之间的区别。

函数Toggle(what,state){$(what).bootstraptogle(state);}
?@NiettheDarkAbsol,或者更确切地说
jQuery事件绑定
您需要查看代码并开始识别其所有“变量”,然后编写一个函数来接受这些变量。在这种情况下,元素及其状态。由于这是一个切换,您甚至不需要“state”变量。很明显,您正在学习如何编写代码,看到这么多人对您的问题投了反对票,这让人很难过……在这个答案上,您需要在没有jQuery包装器的情况下传递元素(就像customToggle(“#chk2”,“off”))