【问题标题】:Expand menu item on click by data attribute which named as id单击名为 id 的数据属性展开菜单项
【发布时间】:2015-04-08 23:56:06
【问题描述】:

如何通过名为 id 的数据属性在点击时展开菜单项?我的意思是,该数据属性是 id (data-cats="#movies")。

HTML

<li class="cat" data-cats="#movies">
    MOVIES
</li>


<li class="cat" data-cats="#music">
    MUSIC
</li>


etc...


<div class="expander" id="movies">
    menu items about movies
</div>

<div class="expander" id="music">
    menu items about music
</div>

etc...

jQuery

$('.cat').click(function() {
    $('.expander').show();
    // dont know what to do next
});

CSS

.expander { display:none; }

如果单击 li 元素,则所有扩展器都将打开,但我只需要找到已单击的一个并扩展它。此外,如果我点击其他 li 元素,则应该关闭打开的元素。

JSFIDDLE

感谢您的任何回答,抱歉英语不好。

【问题讨论】:

    标签: jquery html css custom-data-attribute


    【解决方案1】:

    您可以使用data() 获取要放置在选择器中的值。试试这个:

    $('.cat').click(function() {
        $('.expander').hide(); // hide all shown divs
        $($(this).data('cats')).show(); // show the related one
    });
    

    Updated fiddle

    【讨论】:

    • 非常感谢。这样可行 :)。我会在 9 分钟内接受答复 :)
    • 没问题,很乐意提供帮助。
    【解决方案2】:

    从 ID &lt;div class="expander" id="#movies"&gt; 中删除 #

    <div class="expander" id="movies">
       menu items about movies
    </div>
    
    <div class="expander" id="music">
       menu items about music
    </div>
    

    $('.cat').click(function() {
            $('.expander'+$(this).data('cats')).show(); //or just $($(this).data('cats')).show();
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-11
      相关资源
      最近更新 更多