javascript - 如何仅单击 map 区域一次?

标签 javascript jquery html

我正在创建一项医疗评估,您可以在该页面中选择疼痛的 body 部位。单击 body 部位后,其名称将显示在下方。问题是重复点击时会显示多次。有没有办法阻止点击事件重复?

这是示例。

http://jsfiddle.net/qpmxnv2g/6/

var map = document.getElementById("Map");
map.addEventListener("click", function (e) {
    callAction(e.target);
});
map.one("click", function (e) {
    callAction(e.target);
});

var body = [];
document.getElementById("body").innerHTML = body;

function callAction(area) {
    body.push(area.title);
    document.getElementById("body").value = body;
}

document.getElementById("Clear").addEventListener('click', function () {
    body.length = 0;
    document.getElementById("body").value = '';
});

最佳答案

像这样改变你的函数:-

function callAction(area) {
    if (body.indexOf(area.title) !== -1) { return; }
    body.push(area.title);
    document.getElementById("body").value = body;     
 }

Demo

关于javascript - 如何仅单击 map 区域一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31652793/

相关文章:

javascript - 在Javascript中使用回调函数

javascript - 如何克隆实际的 iFrame 内容,而不仅仅是 iFrame 标签内容?

javascript - jQuery - 无法同时使用导入的文件和自己的函数

html - 如何在新窗口中打开 pdf 文件中的链接?

javascript - 如何将变量数据放入 div Jquerymobile

html - 如何跨指定容器均匀、充分地拉伸(stretch)固定数量的水平导航项

单击 1 次后 Javascript 禁用功能

用于仅查找没有子域的根域名的 Javascript/Regex

javascript - 如何通过在 SuiteScript 2.0 中使用左外连接连接两条记录来在 netsuite 中创建保存的搜索

javascript - 当复选框处于非事件状态时,更改背景颜色并隐藏特定 div 中的单选按钮