JavaScript中的ON / OFF事件监听器,可切换元素显示

时间:2019-07-02 15:48:05

标签: javascript html css

我很难找到如何添加removeEventListener()的方法。当我添加addEventListener()时,效果很好,但是当我添加removeEventListner以便能够删除地图上的数据时,它不起作用。 (我正在使用传单)

这是我的做法:

tail -f /var/log/mail.log

谢谢

1 个答案:

答案 0 :(得分:3)

就像您立即删除事件监听器一样。调用事件后,尝试将其删除。

var geodata = {{{jsonData}}}; // <- noting this is unusual. guessing its sudo code

var bouto = document.getElementById("bouton");
var displayElement = document.getElementById("display"); // whatever your display data element is

function jsoncalls() {
    // I'm assuming you want to remove it after jsoncall() is called.
    bouto.removeEventListener("click", jsoncalls);
    bouto.addEventListener("click", hideData);

    L.geoJSON(geodata, {
        onEachFeature: onEachFeature
      })
      .addTo(mymap);

    // show your display element here
    displayElement.style.display = "block";
}

function hideData() {
    bouto.removeEventListener("click", hideData);
    bouto.addEventListener("click", jsoncalls);

    // hide your display element here
    displayElement.style.display = "none";
}

bouto.addEventListener("click", jsoncalls);

这是一个更新的jsfiddle,它将在单次点击时显示元素,而在单次点击时隐藏。 https://jsfiddle.net/gmbnrx2q/