Javascript 触发父div的click事件

Javascript 触发父div的click事件,javascript,jquery,Javascript,Jquery,我有一个问题。单击按钮时,我的取消按钮嵌套在触发器中的div中。单击。这会导致slideUp和slideDown同时触发,从而使div保持可见。我尝试添加一个状态来防止div再次向下滑动,但没有达到预期效果 $(add).click(function () { var inputDiv = Polymer.dom(root_root).querySelector("#inputDiv"); if(state == 0){ $(inputDiv).slideDown(300); }


我有一个问题。单击按钮时,我的取消按钮嵌套在触发器中的div中。单击。这会导致slideUp和slideDown同时触发,从而使div保持可见。我尝试添加一个状态来防止div再次向下滑动,但没有达到预期效果

$(add).click(function () {
 var inputDiv = Polymer.dom(root_root).querySelector("#inputDiv");
 if(state == 0){
   $(inputDiv).slideDown(300);
  }
 state = 1;
});
 $(cancel).click(function () {
  var inputDiv = Polymer.dom(root_root).querySelector("#inputDiv");
  $(inputDiv).slideUp(300);
  state = 0;
});

有人知道如何解决这个问题吗?

你应该

停止匹配元素上当前正在运行的动画

用于停止从
#取消
按钮到父级
#添加
div的单击:

$("#cancel").click(function(e) {
    e.stopPropagation();
    ...
});

其他人用
stopPropagation()
进行了评论,但您也不能展开
#inputDiv
,除非它已经可见,例如:

$(function(){
  $("#add").click(function () {
    if($("#inputDiv").css('display') == 'none'){
      $("#inputDiv").slideDown(1000);
    }
  });
  $("#cancel").click(function () {
    $("#inputDiv").slideUp(1000);
  });
});

请发布HTML代码。感谢您的回答,遗憾的是这样做会将div锁定在向下位置。@Michelindoll我不明白您的意思,当测试代码中包含stop时,div将向下滑动很好,但当按下“取消”按钮时,它拒绝再次向上移动。@Michelindol将更新我的answer@Michelindoll小提琴中的代码(在基于此答案的修改之前)应该在问题本身中。
$(function(){
  $("#add").click(function () {
    if($("#inputDiv").css('display') == 'none'){
      $("#inputDiv").slideDown(1000);
    }
  });
  $("#cancel").click(function () {
    $("#inputDiv").slideUp(1000);
  });
});