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