我想爲所有具有(click)
處理程序定義的元素(或者具有綁定到單擊事件)添加cursor:pointer
css樣式。 我相信在AngularJS上可以使用[ng-click] { ... }
來定義一個css,Angular2/4有沒有類似的解決方法?捕獲Angular2中的所有可點擊元素?
2
A
回答
3
1)如果你想添加一些行爲添加到具有(click)
處理程序,您可以創建指令喜歡的所有元素:
@Directive({
selector: '[click]',
host: {
'style': 'cursor: pointer' // or class
}
})
export class ClickableDirective {}
2)要捕獲所有元素有click
處理程序我會覆蓋EventManager
import { Injectable, Inject, NgZone } from '@angular/core';
import { EventManager, EVENT_MANAGER_PLUGINS } from '@angular/platform-browser';
@Injectable()
export class MyEventManager extends EventManager {
constructor(@Inject(EVENT_MANAGER_PLUGINS) plugins: any[], private zone: NgZone) {
super(plugins, zone);
}
addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {
if(eventName === 'click') {
element.style.cursor = 'pointer'; // or add class
}
return super.addEventListener(element, eventName, handler);
}
}
app.module.ts
...
providers: [
{ provide: EventManager, useClass: MyEventManager }
]
})
export class AppModule {
0
如果我理解正確,將[style.cursor]="'pointer'"
添加到元素應該有所訣竅。
但它可能是一個更好的添加「點擊」級,並具有以下樣式表中的定義:
.clickable { cursor: pointer; }
從我可以告訴,角度不添加任何東西到元素HTML時添加(click)
。
+0
是的,可點擊類是顯而易見的方式。但是我正在尋找一種方法來捕獲所有(當前)可點擊的元素而不用重構項目。 – Yuvals
相關問題
- 1. 捕獲單元中帶有ID的元素的點擊
- 2. 點擊元素的jQuery捕獲ID
- 3. 如何捕捉所有子元素中的點擊?
- 4. Angular2 - 點擊事件:獲取單擊元素的ID
- 5. Angular2點擊動態生成的元素
- 6. 點擊所有匹配類的元素
- 7. jQuery的,點擊可點擊元素
- 8. 是否使父級可點擊使所有子元素都可點擊?
- 9. 註冊點擊所有元素爲表
- 10. jquery點擊發射所有元素
- 11. jQuery - 隱藏除被點擊元素之外的所有元素
- 12. 如何在Android webview中通過ID捕獲元素點擊?
- 13. 獲取元素點擊SVG元素
- 14. jQuery的:函數以捕獲實際點擊的元素
- 15. 點擊獲取元素ID
- 16. 獲取點擊:僞元素
- 17. JavaScript:獲取點擊元素
- 18. 僞元素不可點擊
- 19. 元素不可點擊
- 20. 元素不可點擊
- 21. 元素是不可點擊:
- 22. 將CSS設置應用於所有可點擊元素
- 23. Android:具有多個可點擊元素的ListView元素
- 24. 使GridView中的元素可點擊
- 25. pchart中的可點擊元素?
- 26. 如何捕獲鼠標HTML代碼的標籤元素點擊
- 27. 獲取點擊像素內的元素?
- 28. 帶有可點擊鏈接的Android TextView:如何捕獲CustomAdapter ListView中的點擊?
- 29. 元素不在可點擊的點
- 30. 捕獲單個字符串中的所有表單元素值
有一個簡單的方法來找出:添加'(點擊)'處理程序,檢查所呈現的元素,看看HTML上有任何獨特的屬性。 –
我認爲這沒有幫助,我只是檢查我的angular2應用程序和(點擊)沒有出現在DOM中。所以你不能用簡單的CSS來做到這一點。 – Leguest