Почему событие Angular2 (click) не запускает <div> ?</div>

Я обнаружил странное поведение с Angular2:

(щелчок) не стреляет в это:

<div (click)="test()">test</div>

Но он работает здесь:

<div style="position: relative;" (click)="test()">test</div>

Может ли кто-нибудь объяснить это поведение? Почему необходимо установить стиль позиции, чтобы (щелчок) стрелять?

Я что-то пропустил?

Ответы

Ответ 1

Ваш фрагмент кода выглядит хорошо!

Проблема в ваших стилях CSS. Ваш <div> возможно, либо наследует другое значение position либо просто - идет за другим элементом, который блокирует ваш элемент <div> (не позволяет его щелкнуть).

Изменяя позицию на relative она работает, скорее всего, потому, что эта позиция позволяет z-index и перемещает ваш <div> сверху на другой элемент, который блокирует его.

Этого должно быть достаточно, чтобы вы поняли это. Но если вы хотите получить более подробный ответ - пожалуйста, поделитесь своим CSS тоже.

Ответ 2

Я также столкнулся с подобной проблемой в основном на Iphone. в основном, указатель-событие, вызывающее застревание компонентов. Поэтому я применил следующее исправление во всех случаях, когда я применил свойство (click) в теге.

    a,
    div,
    ion-item,
    .item-md,
    .item-ios,
    .segment-button,
    .select-md
    .select-ios,
    .button-ios,
    .button-md,
    .searchbar-md,
    .searchbar-ios {
        pointer-events: auto !important;
    }

Теперь он отлично работает на платформе Android и IOS.