Jquery 需要可扩展的多个开/关按钮

Jquery 需要可扩展的多个开/关按钮,jquery,css,button,toggle,Jquery,Css,Button,Toggle,我一直在摆弄(谢谢@JohnieHjelm!)我找到的用来切换按钮的东西。我把它缩减到我需要的最低限度,并将其包含在我的页面中。它工作得很好,只需一个按钮。它开始看起来不错,但随后就出了问题,正如您在上一个链接中所看到的: <div id = 'settings'> <p> Links: <span class = 'onoff on'>ON</span> <span class = 'onoff'>OFF

我一直在摆弄(谢谢@JohnieHjelm!)我找到的用来切换按钮的东西。我把它缩减到我需要的最低限度,并将其包含在我的页面中。它工作得很好,只需一个按钮。它开始看起来不错,但随后就出了问题,正如您在上一个链接中所看到的:

<div id = 'settings'>
  <p>
    Links: 
    <span class = 'onoff on'>ON</span>
    <span class = 'onoff'>OFF</span>
    </p><br />
  <p>
    Chapters: 
    <span class = 'onoff on'>ON</span>
    <span class = 'onoff'>OFF</span>
  </p>
</div>

$(function(){
    $('#settings .onoff').click(function(){
        $('#settings .onoff').removeClass("on");
        $(this).addClass("on"); 
    });
});


链接:
在…上
关


章: 在…上 关

$(函数(){ $('#settings.onoff')。单击(函数(){ $('#settings.onoff').removeClass(“on”); $(此).addClass(“on”); }); });
切换按钮一开始看起来不错:

但单击时,一切都会出错:

现在,我知道我可以调用第二个按钮“onoffb”并为新类(或id)重复整个$(function())位。它甚至可能适用于2个或3个按钮,但我根本不想重复那一堆代码,更不用说可能有10个或更多这样的按钮了


我还不擅长javascript,我无法找到解决这个问题的方法。我应该调查什么?我需要一些关于在哪里继续寻找这个特定问题的指针。我正在考虑为每个按钮添加一个id,并以某种方式从jquery中检索它并只修改它,但无论如何我都做不到。

富利wing代码应该可以做到这一点:

$(function(){
    $('#settings .onoff').click(function(){
        $(this).siblings().removeClass("on");
        $(this).addClass("on"); 
    });
});
问题是您使用
$(“#settings.onoff)
选择了所有
.onoff
按钮,而您只需要同级按钮(同一容器中的按钮)


请看我的JSFIDLE:

这可能很琐碎,也可能无法回答问题,因为我不确定您在问什么,但您不能用javascript创建一个方法,并使用多个按钮参数

有点像(伪代码)

所以,如果你想制作x数量的按钮,你可以使用for循环


(从C#的角度来看)

只有当你听起来像是想要学习,只是被人指出而不是给出答案时,才考虑使用“this”而不是特定的类


这将要做的是说‘单击时,将其设置为开/关等’…

您可以像这样链接函数:$(this).addClass(“on”).sibles().removeClass(“on”);我曾想过做类似的事情,但我越来越喜欢jquery的工作方式,不再需要在html中使用onclick=“onoff('thisid')抛出javascript代码“我明白了,虽然user2019515给了我一个足够好的答案,但你的意思是这样的:使用
的id(这在我的代码中没有设置)或者一个
,使用
这个
和它的子项,这样只有
才会受到影响?好吧,“这个”一开始可能会让人困惑,但本质上,通过使用它,这意味着“我刚才点击的任何东西”。因此,在需要影响一般事物的函数中,比如一堆开/关按钮唱“this”,你可以添加任意多的按钮/元素等,而不必返回并修改实际的jquery/javascript。
function onoff(var Numberofbuttons)
{
Insert code here
}