javascript - 如何从类中删除事件监听器?

标签 javascript

我在删除事件监听器时遇到问题。当我运行此脚本时,出现 changeGirl.off("click") is not a function 错误。我需要删除事件监听器,其他一切都工作正常。有什么想法吗?

$( document ).ready(function() {
	$(".changeGirl").each(function() {
		var changeGirl = this;
		
		changeGirl.addEventListener("click",function() {
			if (window.XMLHttpRequest) {
				xmlhttp=new XMLHttpRequest();
			} else {
				xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			xmlhttp.onreadystatechange=function() {
				if (xmlhttp.readyState==4 && xmlhttp.status==200) {
					changeGirl.innerHTML = xmlhttp.responseText;
					changeGirl.off("click");
				}
			}
			xmlhttp.open("GET","getUsers.php?girls="+$(this).attr("data-position"),true);
			xmlhttp.send();
		});
	});
});

最佳答案

您可以尝试从addEventListener中提取函数并将其命名为yourFunction,然后使用removeEventListener:

changeGirl.addEventListener("click", yourFunction);
changeGirl.removeEventListener("click", yourFunction, true);

关于javascript - 如何从类中删除事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59348097/

相关文章:

javascript - 没有得到名称属性

javascript - 如何从 javascript 更改 JSP 中的消息文本?

javascript - jQuery Cycle 插件 - 向前/向后幻灯片放映

javascript - Node.js 常量问题

Javascript 对象说明

javascript - Highcharts yAxis max 不工作

javascript - 将幻灯片放映在顶部,页面下方可见

javascript - jquery嵌套无法拖动到空列表

javascript - JS 图像调整大小兼容 fullPage.js

javascript - chartist.js 点无填充