javascript - 创建 Leaflet 自定义复选框控件

标签 javascript jquery map leaflet

我想创建一个自定义复选框控件,它将简单地在 jquery/javascript 中设置一个标志:如果选中标志 = 'clustered' 或如果未选中标志 = 'unclustered'。到目前为止,我在 map 上有一个控件,但它不是一个复选框,我如何获取复选框的状态 - 如果它已选中/未选中。

代码:

function MapShowCommand() {
  alert("checked / unchecked"); //set flag
}

L.Control.Command = L.Control.extend({
    options: {
        position: 'topleft',
    },

    onAdd: function (map) {
        var controlDiv = L.DomUtil.create('div', 'leaflet-control-command');
        L.DomEvent
            .addListener(controlDiv, 'click', L.DomEvent.stopPropagation)
            .addListener(controlDiv, 'click', L.DomEvent.preventDefault)
        .addListener(controlDiv, 'click', function () { MapShowCommand(); });

        var controlUI = L.DomUtil.create('div', 'leaflet-control-command-interior', controlDiv);
        controlUI.title = 'Map Commands';
        return controlDiv;
            }
    });
var test = new L.Control.Command();
map.addControl(test);

最佳答案

您必须在 controlDiv 中创建一个带有 input type="checkbox"的表单元素。

// create the control
var command = L.control({position: 'topright'});

command.onAdd = function (map) {
    var div = L.DomUtil.create('div', 'command');

    div.innerHTML = '<form><input id="command" type="checkbox"/>command</form>'; 
    return div;
};

command.addTo(map);


// add the event handler
function handleCommand() {
   alert("Clicked, checked = " + this.checked);
}

document.getElementById ("command").addEventListener ("click", handleCommand, false);

在这个 jsfiddle 中工作 http://jsfiddle.net/FranceImage/ao33674e/

您也可以按照 Leaflet 的方式阅读此提示:https://github.com/Leaflet/Leaflet/blob/master/src/control/Control.Layers.js

关于javascript - 创建 Leaflet 自定义复选框控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25763626/

相关文章:

javascript - 某些图像未在 Chrome 中显示

javascript - 从 AWS Lambda JS SDK 访问 EC2 资源

javascript - 如何将 Jquery 滚动事件绑定(bind)到动态添加的元素?

Javascript:如何获取放置事件的文本值?

java - 将 map 转换为列表

java - 放入 Map<String, ?>

javascript - InDesign 脚本 : How to print specific spot color in separations?

javascript - 使用 javascript 在后台运行任务

javascript - 如何停止窗口底部的图像?

c++ - std::map 中 find() 的时间复杂度?