[英]Accessing the HTMLElement of a marker's icon in Leaflet
我的地圖上有一些帶有自定義圖標(DivIcons)的標記。
當我點擊一個標記時,我想訪問圖標的HTMLElement,添加或刪除類。
我發現訪問HTMLElement的唯一方法是_icon
屬性。 我知道這是私人財產,但我找不到另一種方式。
options.icon
返回圖標對象(由許多標記使用),而不是此標記的具體HTMLElement。
您是否知道一種安全的方式來訪問標記的HTMLElement?
不幸的是,JavaScript沒有對私有屬性的本機支持。 但是,有幾種技術可以模擬它們:一種使用前綴,另一種使用前綴。
使用下划線前綴只是一種編碼約定,並不是由語言強制執行的:沒有什么可以阻止用戶直接訪問“應該是私有的”屬性。 此方法不安全,僅作為客戶端代碼的准則。 所以我認為通過訪問_icon
屬性不會造成任何傷害。
如果屬性應該是私有的,不可能從外部訪問,則通常將其設置為某個范圍的局部變量,而不綁定到上下文。 這種類型的變量只能在閉包的幫助下從外部訪問,如果沒有定義,則無法訪問變量。
我找到了一種記錄方式來訪問它:
由於我處於“點擊”事件中,我可以在回調中使用event.originalEvent.target
訪問標記的HTMLElement。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.