【问题标题】:jQuery Toggle onClick Function not working as expectedjQuery Toggle onClick 函数未按预期工作
【发布时间】:2016-02-21 01:13:08
【问题描述】:

这是一个简单的切换功能,当我点击 .myElement(height is auto) 时,它会展开我的内部 div,第二次点击它会折叠。

所以我的问题是,无论我点击.myElement,它都会折叠我希望它只在我点击图像文件上的签名字段时折叠。

HTML:

<div class="myElement">
  <h4>Departments</h4>
  <div class="fil-content">
     <ul>
       <li><a href="/">Civil Engineering</a></li>
       <li><a href="/">Computer Engineering</a></li>
       <li><a href="/">Electrical - Electronics</a></li>
       <li><a href="/">Energy Systems</a></li>
       <li><a href="/">Industrial Engineering</a></li>
     </ul>
   </div>
</div>

CSS:

.myElement {
    width: 76%;
    height: auto;
    background-color: #f5f7f7;
    border: 1px solid #e4ebee;
    border-radius: 3px;
    text-align: left;
    line-height: 4vw;
    padding-left: 6%;
    padding-right: 6%;
    box-shadow: 0 1px 1px rgba(0,0,0,0.1);
    cursor:pointer;
    margin-bottom: 1vw;
}
.myElement .fil-content {
    display: none;
    max-height:18vw;
    overflow:auto;
    width: 93.2%;
}

我的代码:

 $('.myElement').click(function () {
     $(this).toggleClass('active');
     $(this).children('div').toggle(800);
 });

图片:

【问题讨论】:

  • 不要发布图片,而是发布相关代码以获得简约样本。我想你可以过滤它关于 event.target 或通过停止子 div 点击事件传播或元素是否具有类,但调试...图像非常困难!

标签: javascript jquery css toggle toggleclass


【解决方案1】:

我只会在您的 h4 元素上设置点击事件处理程序。

var element = $('.myElement')
element.find("h4").click(function () {
  element.toggleClass('active');
  element.children('div').toggle(800);
});

这是一个有效的小提琴:https://jsfiddle.net/jx6sawtt/

更新:

如果你有多个元素并且它们都有相同的结构,你可以使用这个sn-p:

$('.myElement').find("h4").click(function () {
  var el = $(this).parent();
  el.toggleClass('active');
  el.children('div').toggle(800);
});

在这里,您在每个h4 元素上设置点击事件,然后切换被点击的h4 的父元素。

更新的小提琴:https://jsfiddle.net/4h3pbys6/

【讨论】:

  • 感谢答案,我尝试它可以工作,但我有 5 个内容,所以它们现在都同时扩展了。
  • 不客气,我们都是初学者 :) 为您编辑的问题 +1,现在很好。
【解决方案2】:
$('.myElement').click(function () {
    $(this).toggleClass('active');
    $(this).children('div').toggle(800);
    $('.fil-content').toggle();
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-06
    • 1970-01-01
    • 1970-01-01
    • 2018-02-01
    • 2019-10-30
    • 2015-04-11
    • 2022-01-25
    • 2019-12-22
    相关资源
    最近更新 更多