javascript - 单击另一个元素时如何禁用元素?

标签 javascript jquery html css slidetoggle

我连续有 5 个社交媒体按钮,其中 2 个具有由 jquery Slidetoggle 触发的菜单。问题是,当点击 Twitter 按钮时,它会在菜单出现时重新排列图标,并将它们全部打乱。我该如何防止这种情况发生?

这是我的代码:

$(".button").click(function() {


  $(this).closest('.comment').find(".box").toggle();



});
#icons {
  width: 450px;
  padding: 0px!important;
}
.comment {
  width: 140px;
  float: right;
}
.button {
  width: 25px;
  display: inline;
  margin-right: 5px;
  vertical-align: top!important;
  height: 25px;
}
.box {
  margin-top: -20px;
  width: 25px;
}
.box ul {
  width: 80px;
  height: 35px;
  padding: 10px;
  background-color: #fff;
}
ul.tw {
  border: 0px;
}
li.normal {
  margin-right: 25px!important;
  width: 80px;
}
li.tw {
  margin-right: 60px;
  width: 80px;
}
#hidden {
  display: none;
}
li {
  padding: 0!important;
  list-style-type: none;
  float: right;
}
a {
  padding: 0 !important;
  font-family: Arial;
  font-size: 12px !important;
  text-decoration: underline !important;
  color: #000000 !important;
  padding-left: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<body>

<div id="icons">
  <div class="comment">
    <div class="button">
      <img src="http://devjohnson.com/skin/frontend/dJTheme/default/images/facebook_icon.png">
    </div>
    <div class="box" id="hidden">
      <ul class="normal">
        <li class="normal"><a href="https://twitter.com/theoriginaldoc" target="_blank">DocJohnson</a>

        </li>
        <li class="normal"><a href="https://twitter.com/askthedocshow">Ask The Doc</a>

        </li>
      </ul>
    </div>
  </div>
  <div class="comment">
    <div class="button">
      <img src="http://devjohnson.com/skin/frontend/dJTheme/default/images/twitter_icon.png">
    </div>
    <div class="box" id="hidden">
      <ul class="tw">
        <li class="tw"><a href="https://twitter.com/theoriginaldoc" target="_blank">DocJohnson</a>

        </li>
        <li class="tw"><a href="https://twitter.com/askthedocshow">Ask The Doc</a>

        </li>
      </ul>
    </div>

    <div class="button">
      <a href="http://docjohnsonusa.tumblr.com/" target="_blank">
        <img src="http://devjohnson.com/skin/frontend/dJTheme/default/images/tumblr_icon.png" id="socialImage" />
      </a>
    </div>
    <div class="button">
      <a href="https://www.youtube.com/user/DOCJOHNSON1976" target="_blank">
        <img src="http://devjohnson.com/skin/frontend/dJTheme/default/images/youtube_icon.png" />
      </a>
    </div>
    <div class="button">
      <a href="http://instagram.com/docjohnsonusa" target="_blank">
        <img src="http://devjohnson.com/skin/frontend/dJTheme/default/images/instagram_icon.png" />
      </a>
    </div>

  </div>

  </body>

Fiddle

最佳答案

不确定它是否会破坏您的布局,但它可以将 position:absolute 添加到 #hidden 元素:

#hidden {
    display:none;
    position: absolute;
    margin-top: -10px;
}

Fiddle 。还添加了 margin-top: -10px,因为 -20px.box 值使 div 越过了按钮。

关于javascript - 单击另一个元素时如何禁用元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31749114/

相关文章:

javascript - jQuery 自动调整大小功能导致浏览器跳转

jquery - 如何在 jQuery 中从外部 URL 获取数据?

jquery - 悬停在 li 类上时如何保持 jquery 下拉菜单打开

html - 将 padding-bottom 添加到所有元素都绝对定位的页面

javascript - 如何在 jQuery tablesorter 中防止 "uncaught exception: Syntax error, unrecognized expression"?

javascript - Pythonanywhere IOError/RuntimeError 上的 Django

javascript - 将四种功能整合为单一功能

javascript - 在 Bootstrap 3 中自定义搜索框 CSS 以及在导航栏中放置元素

javascript - 使用 jquery 抓取 HTML 并操作元素

html - 如何将样式应用于仅使用 CSS 选中其复选框的标签?