繁体   English   中英

如何删除 keydown 事件侦听器

[英]how to remove keydown Event Listener

我想在特定条件下删除 keydown 事件侦听器。 但是不知道如何删除此事件侦听器。 我尝试使用 removeEventListener 和 off() 但没有得到结果。 不更改此代码的任何内容,如何设置条件,如果某些内容为真,则删除事件侦听器或关闭事件侦听器(仅使用 js)?

我正在使用旋转滑块。 这是滑块缩小的 js 文件中的默认代码。 我想设置一个条件,如果它到达最后一张幻灯片,那么它应该开始滚动页面而不是再次返回到第一张幻灯片。 所以当它到达最后一张幻灯片时,我将删除事件侦听器

s = function(e) {
    !0 === t[e].navigation.keyboardNavigation && t.document.on("keydown", function(i) {
        if ("horizontal" == t[e].navigation.keyboard_direction && 39 == i.keyCode || "vertical" == t[e].navigation.keyboard_direction && 40 == i.keyCode) {
            if (void 0 !== t[e].keydown_time_stamp && (new Date).getTime() - t[e].keydown_time_stamp < 1e3)
                return;
            t[e].sc_indicator = "arrow",
            t[e].sc_indicator_dir = 0,
            "carousel" === t[e].sliderType && (t[e].ctNavElement = !0),
            t.callingNewSlide(e, 1, "carousel" === t[e].sliderType)
        }
        if ("horizontal" == t[e].navigation.keyboard_direction && 37 == i.keyCode || "vertical" == t[e].navigation.keyboard_direction && 38 == i.keyCode) {
            if (void 0 !== t[e].keydown_time_stamp && (new Date).getTime() - t[e].keydown_time_stamp < 1e3)
                return;
            t[e].sc_indicator = "arrow",
            t[e].sc_indicator_dir = 1,
            "carousel" === t[e].sliderType && (t[e].ctNavElement = !0),
            t.callingNewSlide(e, -1, "carousel" === t[e].sliderType)
        }
        t[e].keydown_time_stamp = (new Date).getTime()
    })
}

您可以通过在 keydown 事件上返回 false 来轻松完成示例:

<input type = "text" onkeydown = "disable()">
// Javascript
function disable(){
{
    return false;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM