【发布时间】:2014-06-24 19:05:42
【问题描述】:
请看这个:http://gisdev.clemson.edu/fireflies
右上角是三个复选框,我试图让它们像单选按钮一样工作。部分编程正在运行,但这里有一些问题:
最初,选中“县”复选框。如果我点击“Hydric Soil Rating”复选框,然后再点击 Counties 复选框,Hydric 复选框仍处于选中状态。控制台不输出任何内容,这意味着当问题发生时checkboxes_controls 变量的值会丢失。
相关代码如下:
var checkboxescontainer = document.querySelectorAll('.leaflet-control-layers-overlays');
var checkboxes_controls = checkboxescontainer[0].children;
$(checkboxes_controls).each(function()
{
console.log($.trim($(this).text()));
if (eventtype === 'add')
{
if (layername === $.trim($(this).text()))
{
// don't do anything but uncheck all others--making them work like radio buttons
}
else
{
$(this).find('input:checkbox').attr('checked', false);
}
}
});
有什么想法吗?
编辑 我看到了问题:第二次单击 Counties 图层以选择它甚至不会触发图层“添加”事件,因为我只是将图层前后发送。嗯。
【问题讨论】:
-
eventtype和layername应该是什么?请发布您完整的相关代码(包括 HTML) -
我发布了一个“编辑”;请看那个。我的问题是图层并没有真正被删除。谢谢。
-
为什么不直接使用单选按钮?我会说使用复选框作为单选按钮是糟糕的 UI。
-
@Lee Taylor:我很想使用单选按钮,但在 Leaflet.js api 中找不到任何可以让我在我的情况下使用单选按钮工作的东西。谢谢。
-
但是您的页面已经有单选按钮不是吗?
标签: jquery checkbox radio-button