jQuery函数:用交替名称切换,id

时间:2012-03-24 19:24:58

标签: jquery html

我是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'和立即'切换'对的一般解决方案?在名称中使用变量会有帮助,如果有,怎么办?将它放入阵列会更好吗?我不知道如何做到这一点,所以任何帮助表示赞赏。如果我需要提供更多信息,请告诉我。

1 个答案:

答案 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。