私は複数のdivを持ち、divをクリックするとdivの背景色とdivのテキストを変更してdivを強調表示したいすなわちそれをアクティブにする)。私はこれをJQueryを使用する前に私のCSSでクラスを定義し、クラスを動的に削除して追加しました。これはどのようにAngular2で達成できますか?私はDOMを操作するべきではありません。これはangular2のnoです。私はいくつかの例をオンラインで見てきましたが、成功しませんでした。 Pleasedivをハイライト表示するか、クリックしたときにdivをアクティブにする方法
答えて
属性ディレクティブを作成する方法もあります。幸いにもあなたのためにAngularはあなたが探しているものをほぼ正確に行うがホバーイベントを行うためにa guideを持っています。 ... 'ユーザーのアクションに応答する' セクションのために、代わりにクリックに
を対応するために...これを置き換えます。これで
@HostListener('mouseenter') onMouseEnter() {
/* . . . */
}
@HostListener('mouseleave') onMouseLeave() {
/* . . . */
}
:
@HostListener('click') onMouseClick() {
/* . . . */
}
を結果どこをacheiveするにはすでにハイライト表示されているdivをクリックすると、強調表示されません。
import { Directive, ElementRef, HostListener, Input } from '@angular/core';
@Directive({
selector: '[myHighlight]'
})
export class HighlightDirective {
private _defaultColor = 'red';
private el: HTMLElement;
private highlighted: boolean = false;
constructor(el: ElementRef) { this.el = el.nativeElement; }
@Input('myHighlight') highlightColor: string;
@HostListener('click') onMouseClick() {
this.highlighted ? this.highlight('') : this.highlight(this.highlightColor || this._defaultColor);
}
private highlight(color: string) {
this.el.style.backgroundColor = color;
}
}
あなたはそのような要素に適用し、ディレクティブをSE:
<!-- With default color -->
<div [myHighlight]>Click to highlight me!</div>
<!-- With custom color -->
<div [myHighlight]="yellow">I'm a div, la di da.</div>
しかし、別のdivをクリックすると、直前のdivの右にハイライトされません – user3497437
しかし、別のdivを選択した場合、前のdivは強調表示されたままです。しかし、1つのdivは、すべてのdivで強調表示される必要はありません。 – user3497437
一度に1つのdivだけをハイライト表示させたい場合は、ハイライト可能なdivを含むコンポーネントでハイライト表示を行うか、属性ディレクティブのすべてのインスタンス(それ以外の場合は隔離されている)がお互いを調整するために – ABabin
ジャスト値は現在の項目のいずれかに一致する場合はクリックしてクラスを設定し、どのような項目に応じてプロパティを設定します。スタイルを適用するには、CSSを使用してください。
@Component({
styles: [`
div.highlight {
background-color: red;
}`
],
template: `
<div (click)="highlighted = 1" [class.highlight]="highlighted === 1">div1</div>
<div (click)="highlighted = 2" [class.highlight]="highlighted === 2">div2</div>
<div (click)="highlighted = 3" [class.highlight]="highlighted === 3">div3</div>
`
})
class MyComponent {
hightlighted:number = 0;
}
私はangular2を非常に気に入っていますが、上記のことはまだ分かりません。上記のように私はJQueryを使ってangular2を学ぼうとしていました。 JQueryでこれを行うには、クラスの追加と削除が含まれますが、angular2では非常に異なっており、概念を把握しようとしています。しかし、どうやってDOMを操作せずにJQueryのようなクラスを動的に追加したり削除したりするのでしょうか? – user3497437
私はちょうどdivがクリックされたときにそれが強調表示され、ユーザーにアクティブなdivが分かるようにしたい。別のdivがクリックされている場合、それは強調表示されており、前のdivは – user3497437
ではありません。上記のコードは、クラス 'highlight'を動的に追加/削除しています。あるいは「動的に」何か他のことを意味していますか? '[ngClass] =" someClass "' 'someClass'は追加するクラスを持つ文字列または配列です。 –
- 1. クリックしたときにDIVを非表示にする
- 2. DIVをクリックして隠すときにDIVを非表示にする
- 3. 他のdivをホバリングしたときにdivを表示する方法
- 4. divの外でマウスをクリックしたときにdivを非表示にする方法
- 5. divの場所を取得してハイライト表示する方法
- 6. 他のdivをクリックした後、divを表示する方法は?
- 7. jquery make divをクリックしたときに表示される。
- 8. divをクリックして非表示にすると非表示
- 9. ボタンをクリックしたときのdivの非表示と表示
- 10. ボタンをクリックするとdivを表示
- 11. divに表示するときにdivを追加する
- 12. クリックしたときにdivを表示するようにマーカーにOnClickリスナーを追加する方法
- 13. 1 divを表示するとh2をクリックする他のdivを非表示
- 14. divをクリックしたときにフォームを表示
- 15. ES6ボタンをクリックしたときdivをnoneに表示
- 16. divの外をクリックしたときに項目を非表示にする
- 17. クリックした後にdivを別のものの上に表示する方法
- 18. クリックするとdivを展開して非表示にする
- 19. クリックしてdivを強調表示する角度のハイライト指示
- 20. ボタンをクリックしたときに表示されるdivのスクロールを有効にする方法
- 21. whileループから来たときにdivを非表示にする方法
- 22. DIVの内容をスライドさせて表示させる方法は、ユーザーがDIVの見出しをクリックしたときにのみ表示されますか?
- 23. ボタンフォームをクリックした後でdivを非表示にする
- 24. クリックするとangularJSのdivを非表示にします
- 25. チェックボックスをオンにしたときにdivを表示する
- 26. divを別のdivをクリックして表示する
- 27. リンクをクリックするとdivを変更/非表示にする
- 28. 特定の領域を選択するときにdivを表示し、bodyをクリックするときにdivを非表示にします。
- 29. 画像をクリックするとDIVオーバーレイを表示しますか?
- 30. jqueryの前のdivをクリックすると、次のdiv htmlに値を表示する方法は?
義務的な "ただのVanillaJS"コメント。 –