javascript - 第一个单击处理程序删除元素,第二个处理程序不运行,我如何运行两者?

标签 javascript jquery leaflet

我正在使用一个带有弹出窗口的 jQuery 插件 (leaflet.js)。我想在单击关闭按钮时执行一些操作,但由于我不是创建关闭按钮的人,因此我必须使用 jQuery.on() 附加一个处理程序,如下所示:

$(document).on('click', '.leaflet-popup-close-button', function () {
    // do stuff
}

这适用于其他事件(例如鼠标悬停),但由于我单击的是关闭按钮,因此该元素会在单击后立即消失,并且我的处理程序不会运行。

如何让我的处理程序也运行(我不想删除已经存在的处理程序)?

编辑

我无法使用内置的 popupclose 事件,因为如果弹出窗口以其他方式关闭,该事件也会触发。

最佳答案

我对传单不太熟悉,但我认为您需要将 closeButton 选项设置为 false,使用您自己的关闭按钮编辑弹出窗口的 DOM,并为在您想要的任何其他代码之后单击事件调用 togglePopupclosePopup

关于javascript - 第一个单击处理程序删除元素,第二个处理程序不运行,我如何运行两者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21738699/

相关文章:

JavaScript 回调错误处理

javascript - 在 Android 浏览器上,在文本框内输入时整个页面会上下跳动?

javascript - 在点击事件监听器中使用时,这不是一个函数

jquery - 如何仅使用 Jquery "check"某些复选框?

javascript - for循环中的API调用

leaflet - 如何循环遍历传单 map 上的geojson图层?

javascript - 如何从 javascript (leaflet/openlayers) 请求对 Geoserver 上的安全层进行身份验证

javascript - 第二次和第三次点击时的事件

javascript - CSS 下拉菜单 onclick

vue.js - 传单 map 上未显示标记