【问题标题】:Add class to div, when menu item is clicked单击菜单项时,将类添加到 div
【发布时间】:2016-05-04 23:10:26
【问题描述】:

我不是最擅长 jQuery,但尝试创建一个视频播放器,其中有一个子菜单,您可以单击以显示不同的内容选项。这是前端的图片(至少我可以做到!) -

image here

所以当用户点击视频或音频时,它会显示不同的 div,其中包含内容。

这是我的 html 标记:

<ul class="vdotb">
    <li><a href="#video"><i class="fa fa-video-camera"></i> Video </a></li>
    <li><a href="#audio"> <i class="fa fa-headphones"></i> Audio</a></li>
    <li class="subs"><a href="#subscribe"><i class="fa fa-microphone"></i> Subscribe to the Podcast</a></li>
</ul>
<div class="tabscontnt">Video Here</div>
<div class="tabscontnt">Audio Here</div>
<div class="tabscontnt">Subscribe info here</div>

我的 css 文件中的 .tabs-active 类显示为一个块。因此,当类 '.tabs-active' 应用于 'tabscontnt' div 时,会显示内容。

这是我失败的 jQuery...

$('ul.vdotb li a').click(

function(e) {
    e.preventDefault(); // prevent the default action
    e.stopPropagation; // stop the click from bubbling
    $(this).closest('ul').find('.tabs-active').removeClass('tabs-active');
    $(this).parent().addClass('tabs-active');
});

感谢您的帮助和您的时间!

【问题讨论】:

    标签: javascript jquery html css


    【解决方案1】:

    您将类应用到&lt;li&gt; 元素,而不是对应的&lt;div&gt; 元素。尝试为每个&lt;div&gt; 添加一个与您单击的&lt;a&gt;href 匹配的ID,然后使用类似的方法来切换它们:

    $('ul.vdotb li a').click(function(e){
      e.preventDefault(); // prevent the default action
      e.stopPropagation; // stop the click from bubbling
    
      //remove .tabs-active from any active tabs
      $('.tabscontnt.tabs-active').removeClass('tabs-active');
      //add .tabs-active to the corresponding div
      $($(this).attr('href')).addClass('tabs-active');
    });
    

    这是一个小提琴:https://jsfiddle.net/upjyv8a0/

    【讨论】:

    • 你太棒了!像魅力一样工作!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多