在 JavaScript 中,删除同一事件处理程序定义中的事件监听器可能会带来挑战。要解决此问题,请考虑以下策略:
一种方法涉及使用命名函数:
var click_count = 0; function myClick(event) { click_count++; if (click_count == 50) { // to remove canvas.removeEventListener('click', myClick); } } // to add canvas.addEventListener('click', myClick);
或者,您可以使用间接事件处理来关闭点击计数器模式:
var myClick = (function (click_count) { var handler = function (event) { click_count++; if (click_count == 50) { // to remove canvas.removeEventListener('click', handler); } }; return handler; })(0); // to add canvas.addEventListener('click', myClick);
如果您需要每个元素都有自己的计数器,可以使用函数生成器:
var myClick = function (click_count) { var handler = function (event) { click_count++; if (click_count == 50) { // to remove canvas.removeEventListener('click', handler); } }; return handler; }; // to add canvas.addEventListener('click', myClick(0));
以上是如何安全地删除自己的处理程序中的 JavaScript 事件侦听器?的详细内容。更多信息请关注PHP中文网其他相关文章!