我喜歡jQuery在使用其「綁定」方法時包裝事件的方式。然而,設置綁定很尷尬。有什麼方法可以將html的易用性(例如onKeyPress="foo(event)"
)與jQuery獨立於瀏覽器的事件處理優點結合起來嗎?使用html附加jquery事件處理程序?
回答
您的意思是?
function foo(event) {
alert(event.target);
}
$('.someSelector').keypress(foo);
無論是在HTML或者你需要創建一個功能foo
JavaScript的方式,所以也許這是更接近你所期待的。
我不確定你對jQuery的處理程序綁定感到尷尬。
如果HTML元素沒有類或ID,那麼「someSelector」是什麼?難道不得不聲明一個元素爲HTML,然後返回並以某種方式將其定位到DOM中,並將一個事件處理程序附加到文件中的不同位置,而不是僅僅聲明元素及其事件處理程序時間? – JoelFan 2010-11-16 18:12:57
@JoelFan - jQuery完全是從DOM中選擇,然後執行操作。如果元素沒有一致的標識符,並且你不希望爲了選擇的目的而添加一個標識符,那麼我想我不得不問一下你所做的jQuery處理程序綁定是什麼,這足以說服你計劃你的標記以適應DOM選擇。或者我錯過了你的觀點? – user113716 2010-11-16 18:27:27
我喜歡jQuery獨立於瀏覽器的「包裝器」,它爲您提供事件處理程序... http://api.jquery.com/category/events/event-object/...我不同意jQuery是所有關於從DOM中選擇......這是關於獨立於瀏覽器的,更簡單的客戶端腳本......終於...我不是「計劃」我的標記......我正在修復沒有開發的現有標記jQuery – JoelFan 2010-11-16 19:02:38
你可能不想這樣做。
您可能需要閱讀event delegation in JavaScript,這些jquery綁定方法可以爲您處理整齊。
這裏的亮點:
事件代表團有幾個好處 到Web 應用程序的性能:
更少的功能來管理。佔用內存少 。您的 代碼與DOM之間的關係更少。當 通過innerHTML改變DOM時,不需要擔心 關於移除事件處理程序。
你最好不要使用jQuery的結合傭工像$ whatever.click(FN)等
其實here is another question on SO引用我這樣做,也可以幫助同一篇文章。
- 1. jQuery:使用$ .delegate附加函數附加到現有事件處理程序
- 2. 附加到事件處理程序
- 3. 實時附加事件處理程序
- 4. 附加的事件處理程序
- 5. HTML事件處理程序與React事件處理程序
- 6. jQuery附加按鈕單擊事件處理程序不工作
- 7. jQuery點擊事件處理程序附加到DOM元素
- 8. 將多個事件的JQuery委託附加到處理程序
- 9. jQuery - 爲linkButton附加事件處理程序
- 10. jQuery確認()在附加的事件處理程序
- 11. 使用If語句附加一個事件處理程序
- 12. 使用jQuery附加HTML w/click事件
- 13. jQuery事件處理程序
- 14. jQuery事件處理程序
- 15. 將事件處理程序附加到Com事件:InvalidOperationException(S7-PLCSIM)
- 16. 將事件處理程序附加到事件OnInit或OnLoad上
- 17. 附加事件:處理MenuItem.Click
- 18. 如何使用反射將事件處理程序附加到事件?
- 19. 附着事件處理程序
- 20. 動態添加jQuery的事件處理程序以動態HTML
- 21. 在現有處理程序之前附加我的事件處理程序
- 22. 使用jQuery添加事件處理程序不起作用
- 23. 附加事件處理程序調用屬性
- 24. 調用jQuery的事件處理程序
- 25. 附加事件處理程序動態添加元素
- 26. JQuery清理事件處理程序
- 27. 無法將事件處理程序附加到我的控件?
- 28. 單擊事件處理程序,附jQuery,不會觸發
- 29. 添加iPhone OS事件的jQuery樣式事件處理程序
- 30. 發行附加的onClick處理程序使用jQuery
到目前爲止,它看起來像答案是「否」:) – JoelFan 2010-11-16 19:26:07
這可能是這種情況,取決於您對* ease *的看法。由於jQuery(作爲JavaScript)完全在JavaScript端操作,所以對HTML端的唯一訪問就是DOM API提供的橋樑。當然,HTML提供的橋樑是inline'on [event]'屬性。所以你真的看着這個或那個。 – user113716 2010-11-16 19:37:12
@patrick,sux2bme – JoelFan 2010-11-16 19:39:00