簡體   English   中英

在Leaflet中訪問標記圖標的HTMLElement

[英]Accessing the HTMLElement of a marker's icon in Leaflet

我的地圖上有一些帶有自定義圖標(DivIcons)的標記。

當我點擊一個標記時,我想訪問圖標的HTMLElement,添加或刪除類。

我發現訪問HTMLElement的唯一方法是_icon屬性。 我知道這是私人財產,但我找不到另一種方式。

options.icon返回圖標對象(由許多標記使用),而不是此標記的具體HTMLElement。

您是否知道一種安全的方式來訪問標記的HTMLElement?

不幸的是,JavaScript沒有對私有屬性的本機支持。 但是,有幾種技術可以模擬它們:一種使用前綴,另一種使用前綴。

使用下划線前綴只是一種編碼約定,並不是由語言強制執行的:沒有什么可以阻止用戶直接訪問“應該是私有的”屬性。 此方法不安全,僅作為客戶端代碼的准則。 所以我認為通過訪問_icon屬性不會造成任何傷害。

如果屬性應該是私有的,不可能從外部訪問,則通常將其設置為某個范圍的局部變量,而不綁定到上下文。 這種類型的變量只能在閉包的幫助下從外部訪問,如果沒有定義,則無法訪問變量。

我找到了一種記錄方式來訪問它:

由於我處於“點擊”事件中,我可以在回調中使用event.originalEvent.target訪問標記的HTMLElement。

http://leafletjs.com/reference.html#event-objects

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM