Предотвратить запуск обработчика кликов при нажатии на внутренний div

0

Я считаю, что мой вопрос обратный этому: Предотвращение выполнения обработчика родительских событий

Я создаю пользовательский интерфейс в Google Apps Script. У меня есть поле выбора, внутри большего контейнера div. Я хочу, чтобы иметь возможность запускать анимацию с помощью jQuery при щелчке родительского div, но я не хочу, чтобы анимация запускалась при щелчке по элементу выбора. Я пробовал использовать stopPropagation, но это не помогло. В настоящее время анимация запускается при нажатии либо самого div, либо выпадающего списка выбора:

  var ISDOWN = true;  //global to track whether div is down or up

  $("#outer-container").click(
  function(e) {
    e.stopPropagation();
    var source = $(this).attr('id');
    if (source === "outer-container"){
      if (ISDOWN === true){
        $("#outer-container").animate({top: "8px"});
          ISDOWN = false;
      }
      else {
        $("#outer-container").animate({top: "45px"});
          ISDOWN = true;
      }
    }
  });
  • 0
    Если вы хотите, чтобы щелчок по select не всплывал в контейнере, вы должны прикрепить обработчик stopPropagation к select и вызвать stopPropagation .
Теги:
user-interface
google-apps-script

1 ответ

0
Лучший ответ

Вы можете проверить щелчок элемента из целевого свойства объекта события

if ($(e.target).attr('id') === 'outer-container') {
  if (ISDOWN === true){
    $("#outer-container").animate({top: "8px"});
      ISDOWN = false;
  }
  else {
    $("#outer-container").animate({top: "45px"});
      ISDOWN = true;
  }
}
  • 0
    Это сделал это. Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню