草庐IT

leaflet_events

全部标签

javascript - Node.js 事件发射器 : How to bind a class context to the event listener and then remove this listener

有没有办法在事件监听器方法中访问类上下文并有可能删除监听器?示例1:import{EventEmitter}from"events";exportdefaultclassEventsExample1{privateemitter:EventEmitter;constructor(privatetext:string){this.emitter=newEventEmitter();this.emitter.addListener("test",this.handleTestEvent);this.emitter.emit("test");}publicdispose(){this.emi

JavaScript : Simulate Key Events into Textbox/Input

尽管有很多关于如何在JS中模拟按键(keydown/keypress)的文章,但似乎没有一种解决方案适用于我正在使用的浏览器(FirefoxESR17.0.7、Chrome28.0.1500.72、IE10).我测试过的解决方案取自here,here,和here.我想做的是模拟文本区域/输入中的任何击键。虽然我可以追加/删除直接更改“值”的字符,但我看不到其他选项,只能为“向上”、“向下”、“主页”等键输入模拟。根据documentation,应该很简单。例如:vare=document.createEvent("KeyboardEvent");if(e.initKeyboardEve

javascript - Leaflet.label 未显示在标记上

我有一组geoJSON点,它们附有相应的标签。varpoints=L.geoJson(null,{onEachFeature:function(feature,layer){layer.options.riseOnHover=true;//triedaddingthislayer.options.riseOffset=9999;//aswellasthislayer.bindLabel(feature.properties["name"],{className:'map-label'});L.setOptions(layer,{riseOnHover:true});//thisaswe

javascript - event.key 在移动浏览器中对于 keyup、keydown 和 keypress 是未定义的

下面的代码应该简单地抑制任何按键并将按下的键添加到一个div中。这在桌面上运行良好,但在移动设备(safari和chrome)上event.key未定义。varstr='';varel=document.getElementById('#test');document.addEventListener('keypress',function(event){str+=event.key;event.preventDefault();el.innerHTML=str;})event.keyCode和event.keyIdentifier都可用,但将它们转换为字符串会在不同的键盘布局和语言上

javascript - Leaflet.Geosearch : get lon/lat from address

在不懂JS的情况下,我被迫在网页上实现了一张map(OSM通过Leaflet)。在这张map上,应该有一个人的实际地址的标记。地址在数据库中保存为字符串。我可以看到一张map,可以给它添加标记,但在那之后,我就迷路了。我已经测试了一些Leaflet-geocoding-plugins,但我必须承认,对于我的实际编程体验而言,它们不够简单。另一个question是关于同样的问题,但我不明白,如何从L.Geosearch的地址获取经/纬度-Leaflet的插件。谁能给我提供一个查找地址的示例(通过OSMN或其他方式,而不是google/bing或其他需要api-key的提供商),将其转换为

javascript - 如何捕获 event.keyCode 并将其更改为另一个 keyCode?

我已经在SO上检查了其他问题,但是他们没有回答我的问题。我只想捕获某些keyCode并将其替换为另一个。我正在处理字符,而不是空格,我不需要松散焦点等。下面是我的代码。但是您可以用您的键码替换这些键码(例如,当按下大写字母“A”时,它应该替换为零0,等等)。想法是替换keyCode。phrase.keypress(function(event){if(event.shiftKey){switch(event.keyCode){//Cyrilliccapitalized"Н"waspressedcase1053:event.keyCode=1187;event.charCode=1187

javascript - 如何找到最近的标记 leaflet.js

我想知道是否真的有某种方法可以使用leaflet.js找到我位置附近的标记。我想到的第一个想法是存储我位置的纬度和经度,然后遍历一组纬度和经度标记,将它们放在一个数组中,然后对该数组进行排序。我不确定这是否是一个好的选择,因为如果您在map上有一百万个标记,则需要一段时间。伪代码varmyLatLng=[34,56];varmarkers=[[20,30],[10,20],[12,-100],[54,90],[-10,-20],[20,20]];varclosests=[];functionfindNearestMarker(myPosition,nearestMarkers){for

javascript - Chrome 开发工具 : view all event listeners used in the page

chrome开发工具(或任何扩展)中是否有一个功能,我可以通过它查看某个页面/应用程序上使用的所有事件监听器。编辑:它肯定不是这个问题的重复:HowdoIvieweventsfiredonanelementinChromeDevTools?上述问题解释了如何查找在我们与我们的应用交互时触发的特定事件(我知道如何做到这一点!)。我正在寻找的是我们在应用程序中监听的所有事件的列表以及它们附加到哪些DOM元素。 最佳答案 ChromeDevtool无法为您完成此操作。但是您可以使用chrome提供的API检查控制台中的那些:getEven

javascript - jQuery 文件上传插件 : trigger an event when all files are uploaded

我使用jQuery文件上传插件(http://blueimp.github.io/jQuery-File-Upload/)来管理我的文件上传。它工作得很好。我可以检测到每个文件何时上传并(例如)显示一条消息。但我想检测每个文件何时上传以显示最终消息。如何做这样的事情?下面是我的实际实现:$('#fileupload').fileupload({url:"api/fileManager",dataType:'json',maxFileSize:100000000,//100MBfortesting!dropZone:$(document.body)}).on('fileuploadcha

javascript - 如何在 Leaflet 中显示超出特定缩放级别的标签?

我对Leaflet库和一般的JavaScript还很陌生,我一直在试图弄清楚如何根据缩放级别显示/隐藏传单标签(并且标记在“集群”中'层)。标记全部通过AJAX回调加载,然后我使用onEachFeature绑定(bind)弹出窗口和标签,然后我将geoJson标记层添加到map。我只想在放大到某个级别时显示标签,但我没有任何运气。我也尝试添加leaflet.zoomcss.js但我想我没有正确使用它。示例varofficesLayerGroup=L.markerClusterGroup();varcurrentMakers;functionDiaplyLocalOffices(jqOf