我是jQuery的新手,我确实让切换功能按照我的需要工作,但我想知道是否有更通用的方法来处理目标ID。我会给你我的代码和我的意思的例子。
jQuery的:
$(document).ready(function() {
$('#toggler').click(function(){
$('ul#toggled').toggle();
});
});
HTML:
<ul>
<li><a id="toggler" class="g" onclick="toggle()">Specializations</a>
<ul id="toggled">
<li>[Spec 1]</li>
<li>[Spec 2]</li>
<li>[Spec 3]</li></ul></li>
<li>Playing Styles</li>
<li>Stats, Gems, Enchants</li>
<li>Gear</li>
<li><a id="toggler" onclick="toggle()">Professions</a>
<ul id="toggled">
<li>Primary</li>
<li>Secondary</li></ul></li>
</ul>
我希望切换功能通过单击它们来源的列表项来处理子菜单。目前,这确实给了我想要的东西,但它也同时针对菜单中的所有切换功能。我如何使用针对'toggler'和立即'切换'对的一般解决方案?在名称中使用变量会有帮助,如果有,怎么办?将它放入阵列会更好吗?我不知道如何做到这一点,所以任何帮助表示赞赏。如果我需要提供更多信息,请告诉我。
答案 0 :(得分:2)
根据您的DOM构建方式高于我的方式,解决方案将是以下 - &gt;
$(document).ready(function() {
$('#toggler').click(function(){
$(this).next('ul.toggled').toggle();
});
});
$(this)
指的是我们点击的元素,next()
是一个jQuery选择器&amp;抽象,最后。我们确实在说,"Toggle the next UL with an ID of #toggled"
我相信你想要的是要打开的列表的特定部分,而不是所有列表。另外,不要反复使用ID,这不是好习惯,将这些更改为类,现在你很好。
的额外强> 的
另外,我不知道'toggler()'函数在onClick上做了什么,但你应该删除它,因为jQuery正在为click方法处理eventListener。