0
A
答えて
4
単純な実装は、このようになります。
@Component({
selector: 'my-app',
template: `
<div>
<h2 (mousedown)="mousedown()" (mouseup)="mouseup()" (mouseleave)="mouseup()">Hello {{name}}</h2>
</div>
`,
})
export class App {
name: string;
timeoutHandler: number;
constructor() {
this.name = 'Angular!'
}
public mouseup() {
if (this.timeoutHandler) {
clearTimeout(this.timeoutHandler);
this.name = "canceled";
this.timeoutHandler = null;
}
}
public mousedown() {
this.timeoutHandler = setTimeout(() => {
this.name = "has been long pressed"
this.timeoutHandler = null;
}, 500);
}
}
これは、ユーザーが設定した時間の前に離れてクリックした場合はキャンセルされるタイムアウトを設定します。
有効なplnkr hereが見つかります。
あなたが望むものがクリックを保持しているときに起きるようにするには、setIntervalのためにsetTimeoutを入れ替えてください。
@Component({
selector: 'my-app',
template: `
<div>
<h2 (mousedown)="mousedown()" (mouseup)="mouseup()" (mouseleave)="mouseup()">Hello {{name}}</h2>
</div>
`,
})
export class App {
name: number = 0;
timeoutHandler: number;
constructor() {
this.name = -1
}
public mouseup() {
if (this.timeoutHandler) {
clearInterval(this.timeoutHandler);
this.name = 0;
this.timeoutHandler = null;
}
}
public mousedown() {
this.timeoutHandler = setInterval(() => {
this.name += 1;
}, 100);
}
}
作業plnkrがhere見つけることができます。
関連する問題
- 1. アンドロイドのネットワーク接続を聞くにはどうすればいいですか
- 2. VueJSキーのシーケンスを聞くにはどうすればいいですか?
- 3. ルーティングの変更を聞くにはどうすればいいですか?
- 4. AngularJSのjQueryイベントを聞くにはどうすればいいですか?
- 5. 0.0.0.0:8332でビットコンドを聞くにはどうすればよいですか?
- 6. モバイルブラウザで入力イベントを聞くにはどうすればよいですか?
- 7. RelatedItemLineMarkerInfoからマウスクリックを聞くにはどうすればよいですか?
- 8. Laravelにプライベートプッシャーチャンネルを聞くにはどうすればよいですか?
- 9. 角度2でjsonp.requestを行うにはどうすればいいですか?
- 10. クリックを聞くための別の機能を追加するにはどうすればよいですか?
- 11. スレッドを聞くにはどうしたらいいですか?
- 12. カスタムクラスからカスタムイベントを放出し、Dojo 1.11でそれを聞くにはどうすればいいですか?
- 13. Javaで押された/打たれたTabキーを聞くにはどうすればいいですか?
- 14. サブプロットに対角線を描くにはどうすればいいですか?
- 15. 角を丸くするにはどうすればいいですか?
- 16. CでDLLからのメッセージを聞くにはどうすればいいですか#
- 17. iOS/Androidでcordovaで通知を聞くにはどうすればいいですか?
- 18. 位置情報サービスに加えられた変更を聞くにはどうすればいいですか?
- 19. テンプレートを使用しないでContentChildイベントを聞くにはどうすればよいですか?
- 20. 私のpython OSC Serverを自分のIPアドレスで聞くにはどうすればいいですか?
- 21. Firebase AngularFireで複数のパスを聞くにはどうすればいいですか?
- 22. ダーツゲームでキープレスを繰り返し聞くにはどうすればいいですか?
- 23. マウスイベントをあるクラスから聞いて、別のクラスでそれを聞くにはどうすればいいですか?
- 24. 角2メソッドを公開するにはどうすればよいですか?
- 25. 角2経路をモックするにはどうすればよいですか?
- 26. 嘲笑されたオブジェクトのイベントを聞くにはどうすればいいですか?
- 27. 角度2コンポーネントから電子ダイアログを開くにはどうすればいいですか?
- 28. WebDriverで「クリック&ホールド」
- 29. Jenkinsの入力プロンプトをスラックから聞くにはどうすればいいですか?
- 30. 角2のリンクを青くして下線を引くにはどうすればよいですか?
同様の概念では、$ intervalや$ timeoutの代わりにプレーンjs関数を使用するだけで、ng2はラッパーを必要としません。 :) – toskv