传单上的可点击 L.控件
Clickable L.control on leaflet
本文关键字:控件 更新时间:2023-09-26
我正在尝试在我的传单地图中添加一个L.Control
元素。但是,一旦我将元素添加到我的地图中,我注意到它并不clickable
。我想在这个L.Control
元素中显示一个表单,但是我无法从下拉菜单中选择任何元素,因为点击总是通过地图。
这里有一个 JSfiddle: http://jsfiddle.net/fd3dnnc1/1/
以及我的JS代码:
var map = L.map('map').setView([0.27, 37.66], 6);
// add an OpenStreetMap tile layer
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
var mainMenu = L.Control.extend({
options: {position: 'topright'},
onAdd : function (map) {
this._div = L.DomUtil.create('div', 'mainMenu');
this._div.innerHTML = '<h3>Main Menu</h3>';
this._div.innerHTML += '<h4>Data:</h4> MODIS NDVI <h4>AOI:</h4> Kenya, Africa <br><br>'
this._div.innerHTML += '<h4>Indicator:</h4>'
this._div.innerHTML += '<form><form id="form" class="form" action="" method="POST">' +
'<select name="indicator"><option value="NDVI_ABS">NDVI<br>' +
'<option value="NDVI_VCI">VCI<br>' +
'<option value="RAIN_ABS">Precipitation<br>' +
'</select>';
this._div.innerHTML += '<input type="submit" value="Refresh Map" name="submit"></form>';
return this._div;
},
});
map.addControl(new mainMenu());
关于如何使其可点击的任何建议?
如果你看一下随传单一起提供的L.Control.Layers的源代码,你可以看到他们使用L.DomEvent来禁用或停止容器上点击和/或滚动事件的传播。您应该执行完全相同的操作,它将按预期工作:
if (!L.Browser.touch) {
L.DomEvent
.disableClickPropagation(this._div)
.disableScrollPropagation(this._div);
} else {
L.DomEvent.on(this._div, 'click', L.DomEvent.stopPropagation);
}
更新的小提琴:http://jsfiddle.net/az9w0r5L/
您是否将
单击处理程序连接到按钮?我用这个更新了你的小提琴:
$('#refreshBtn').on('click', function () {
alert('hello world');
});
我收到了警报。
我找到了一个解决方案: 我实际上不再使用L.Control
了,但我决定使用一个新的div tag
来代替使用CSS
(z-index
):
JSFiddle: http://jsfiddle.net/fd3dnnc1/3/
#menu {
position: absolute;
width: 300px;
z-index: 100;
}
#map {
height:100%;
width:100%;
z-index: 1;
}
<div id="map"></div>
<div id="menu">Menu Content here</div>
相关文章:
- 音频控件在mouseover上显示,在mouseout上淡出
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- Windows形成web浏览器控件和Javascript更改的DOM
- 如何将javascript事件从web浏览器wpf控件发送到wpf的c#代码
- 如何更改文本框控件的不透明度值
- 所有控件的组合框
- 创建一个方法,通过一个窗口进行迭代并获取Titanium中的所有控件
- 在angularjs中创建自定义控件的推荐方法
- 自定义控件中的双向绑定在SAPUI5中不起作用
- 如何在ASP中为用户控件添加Javascript对象网
- Dynamics 2016内部部署Crm客户端脚本.选项集控件类型缺少方法
- 从服务器获取数据并在选择控件中使用ng选项无法显示选项
- 在HTML5画布上添加按钮和控件
- 隐藏HTML5视频控件
- 向ASP控件添加自定义事件
- 从IE中的不同元素调用时,文件输入控件未正确启动
- 当用户点击音频控件时,无法接收点击事件
- 在codeigniter中具有控件的looper.js
- 无法传递Asp.net控件's值转换为javascript函数