使用Chrome开发者工具,我找到了一个点击事件监听器,我想删除:
如果我使用开发人员工具删除监听器,它可以工作。现在我已经发现通过jQuery添加了监听器:
$(".js_playerlist").on("click",".playerlist_item",function(){
var a=$(this).hasClass("nothingThere");
if(!a) {
var d=$(this).data("msgid");
if(d) {
b.loadChatLogWithPlayer(this,d)
} else {
b.loadChatLogWithPlayer(this)
}
}
});
如何通过Javascript 不使用jQuery 删除此事件侦听器?
答案 0 :(得分:1)
你必须使用jQuery函数来执行此操作,因为事件由jquery附加,因此使用 unbind()
或 off()
这两个函数将删除事件:
$(".js_playerlist").delay(1000).off("click",".playerlist_item");
//OR
$(".js_playerlist").delay(1000).unbind( "click.playerlist_item" );
您可以使用javascript方法removeEventListener()
但是您必须将要删除的函数作为参数传递,并且在您的案例中附加事件的脚本可以避免这种情况。
希望这会有所帮助。
答案 1 :(得分:0)
我想你可以使用
function register_popup(id, name) {
for (var iii = 0; iii < popups.length; iii++) {
//already registered. Bring it to front.
if (id == popups[iii]) {
Array.remove(popups, iii);
popups.unshift(id);
calculate_popups();
return;
}
}
var element = '<div class="popup-box chat-popup" id="' + id + '">';
element = element + '<div class="popup-head">';
element = element + '<div class="popup-head-left">' + name + '</div>';
element = element +
'<div class="popup-head-right"><a href="javascript:close_popup(\'' +
id +
'\');">✕</a></div>';
element = element + '<div style="clear: both"></div></div><div class="popup-messages"></div>';
element = element +
'<div class="chat-inputbox" ><input type="text" class="chat-inputboxval" /></div></div>';
document.getElementsByTagName("body")[0]
.innerHTML = document.getElementsByTagName("body")[0].innerHTML + element;
popups.unshift(id);
calculate_popups();
}
在这种情况下,document.getElementsByClassName("js_playerlist")[0].removeEventListener("click", attachedFunction);
是附加在事件触发时调用的函数。在你的情况下:
attachedFunction
可能,如果您可以访问代码,提取函数并将其分配给变量,代码将更清晰。
如果其他脚本不在你的onwership下,为了100%易于维护,我建议你发送一个其他脚本代码的请求并解析它以获得所需的功能,所以你将拥有最新版本。