在Bootstrap下拉切换触发jQuery

时间:2014-08-18 21:51:15

标签: javascript html css twitter-bootstrap

我制作了一个不会生成链接的bootply,所以这里是我投入的设置。

我希望jQuery在触发此下拉列表时向另一个div添加一个类,并在隐藏下拉列表时删除该类。

CSS:

.halfOpacity
  {
    opacity: .5;
  }
#switchMenu
  {
    top: 100px;
  }
#siteData
  {
    color: #FFF;
    background-color: #000;
  }

使用Javascript:

$('#switchDropdown').on('show.bs.dropdown', function(){
  $('#siteData').addClass('halfOpacity');
});
$('#switchDropdown').on('hide.bs.dropdown', function(){
  $('#siteData').removeClass('halfOpacity');
});

HTML:

<a href="#" class="navbar-brand dropdown-toggle mobile-footer-brand" data-toggle="dropdown" id='switchDropdown'>Test Link</a>

<ul class='dropdown-menu' id='switchMenu'>
  <li>HORRAY!!!!</li>
</ul>

<div id='siteData'>Some Stuff<br>Moar stuff<br>Even moar stuffs</div>

现在,jQuery永远不会根据Bootstrap所说的动作进行调用。

1 个答案:

答案 0 :(得分:1)

通过更清楚地阅读文档回答了我自己的问题。

活动

所有下拉事件都会在.dropdown-menu的父元素处触发。

Bootstrap Documentation Here

以下更改为我解决了这个问题:

使用Javascript:

$('#wrap').on('show.bs.dropdown', function(){
  $('#siteData').addClass('halfOpacity');
});
$('#wrap').on('hide.bs.dropdown', function(){
  $('#siteData').removeClass('halfOpacity');
});

HTML:

<div id='wrap'>
<a href="#" class="navbar-brand dropdown-toggle mobile-footer-brand" data-toggle="dropdown" id='switchDropdown'>Test Link</a>

<ul class='dropdown-menu' id='switchMenu'>
  <li>HORRAY!!!!</li>
</ul>
</div>
<div id='siteData'>Some Stuff<br>Moar stuff<br>Even moar stuffs</div>