Ионные события не запускаются с помощью ion-select

#javascript #html #ionic-framework #dom #ionic4

#javascript #HTML #ионный фреймворк #dom #ionic4

Вопрос:

Я хочу получить значение ion-select on-blur, но событие не запускается. Это мой текущий код :

 <script type="module" src="https://cdn.jsdelivr.net/npm/@ionic/core/dist/ionic/ionic.esm.js"></script>
<script nomodule src="https://cdn.jsdelivr.net/npm/@ionic/core/dist/ionic/ionic.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ionic/core/css/ionic.bundle.css" />
<ion-app>
  <ion-content>
    <ion-item>
      <ion-label>Filters</ion-label>
      <ion-select value="none" ionCancel="console.log('cancelled')" ionBlur="console.log('event')" ionChange="console.log('event')" ok-text="Add" cancel-text="Cancel">
        <ion-select-option value="none">None</ion-select-option>
        <ion-select-option value="sports">Sports</ion-select-option>
        <ion-select-option value="tech">Tech</ion-select-option>
        <ion-select-option value="cooking">Cooking</ion-select-option>
        <ion-select-option value="music">Music</ion-select-option>
      </ion-select>
    </ion-item>
  </ion-content>
</ion-app> 

Может кто-нибудь, пожалуйста, скажите мне, в чем ошибка, которую я здесь делаю.

Комментарии:

1. В случае использования js, а не ts, вы можете использовать обычные теги javascriot html, такие как onblur или onfocus и тому подобное..

Ответ №1:

Вы не можете добавлять обработчики событий с помощью HTML (если вы не используете фреймворк, такой как Angular, или компилятор, такой как Stencil).

Вместо этого вам нужно использовать JavaScript:

 document.querySelector('ion-select').addEventListener('ionBlur', () => console.log('blur'));
 

В реальном приложении вы, вероятно, захотите использовать более конкретный селектор.