javascript - 如何向 DIV 添加点击属性而不将其应用于其中的元素?

标签 javascript jquery html animation

我有一个 DIV,单击时会展开以显示一些输入和按钮,再次单击时会关闭,隐藏这些元素。我遇到的问题是,当我单击按钮或输入框时,关闭动画无论如何都会发生。我知道我可以通过从 DIV 中取出输入和按钮来解决这个问题,但 DIV 对于它们的格式和组织非常重要。任何帮助都会很棒,谢谢!

html:

<div id='inputArea1' class='inputAreas'>
   <input id='email' class='evInput' placeholder='example@gmail.com'>
   <input id='comf' class='evInput' placeholder='Comfirmation Code'>
   <button id='sndCde' class='evBut'>Send Code</button>
   <button id='comfBut' class='evBut'>Comfirm</button>
</div>

JS:

var main = function() {
  $('.box').click(function() {
    var el = $(this);
    if (!el.hasClass('selected')) {
      el.animate({
        "height": "300px"
      }, 200)
      el.addClass("selected");
      el.find('.inputAreas').show();
    } else {
      el.animate({
        "height": "85px"
      }, 200);
      el.find('.inputAreas').hide();
      el.removeClass("selected");
    }
  })
}
$(document).ready(main);

完整代码:https://jsfiddle.net/dL2vzga0/

最佳答案

event.stopPropagation(); 可以完成这项工作:

$('#inputArea1').click(function(event){
  event.stopPropagation();
});

Fixed Fiddle

关于javascript - 如何向 DIV 添加点击属性而不将其应用于其中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39110942/

相关文章:

javascript - JQuery remove() 无法正常工作

javascript - Auto DIV Scroller 脚本上的图形滚动条修改

jquery - 处理 contentEditable DIV 上的换行符

html - 如何同时从相对定位和绝对定位获取属性

html - 如何在 jquery mobile 中为可折叠集创建列表分隔符

javascript - 具有不同 URL 端点的主干集保存 (PUT) 请求

javascript - 拒绝在框架中显示 'url',因为它将 'X-Frame-Options' 设置为 'SAMEORIGIN'

javascript - 是什么导致 Failed to execute 'fetch' on 'ServiceWorkerGlobalScope' : 'only-if-cached' can be set only with 'same-origin' mode error?

jquery - 使用自定义 CSS 的垂直范围输入也尊重 parent 的尺寸

javascript - 如何将网页的 Tab 键按下转换为 Enter 键按下?