简体   繁体   English

TypeError:$(…).addEventListener不是函数

[英]TypeError: $(…).addEventListener is not a function

setTimeout(function() {
        $.ajax({
        url : "handlers/H_AnnotationHandler.php",
        data : "case_id=<?=$case_id?>&plink=<?=$plink?>&mode=get",
        type : "post",
        dataType : "json",
        success : function (response) {
            if (!response.error) {
                annotation_length = response.annots.length;
                for (var i = 0; i < response.annots.length; i++) {
                    var elt  = document.createElement("div");
                    elt.id = "runtime-overlay" + i;
                    elt.className = "highlight";
                    viewer.addOverlay({
                        element: elt,
                        location : viewer.viewport.imageToViewportRectangle(parseInt(response.annots[i].rect_x), parseInt(response.annots[i].rect_y), parseInt(response.annots[i].rect_w), parseInt(response.annots[i].rect_h))
                    });
                    $("#runtime-overlay"+i).attr("onclick", "$.clickOverlay('"+i+"')");
                }
            }               
        }
    });
    }, 3000);

    $.clickOverlay = function(whichOverlay) {
            var flag = 0;
            $("#runtime-overlay"+whichOverlay).addEventListener("mousedown", function(){
                flag = 0;
            }, false);
            $("#runtime-overlay"+whichOverlay).addEventListener("mousemove", function(){
                flag = 1;
            }, false);
            $("#runtime-overlay"+whichOverlay).addEventListener("mouseup", function(){
                if(flag === 0){
                    console.log("click");
                }
                else if(flag === 1){
                    console.log("drag");
                }
            }, false);
    }

Why i get an type error for addeventlistener ? 为什么我收到addeventlistener的类型错误? Can you help me, i try to understand click or drag. 您能帮我吗,我尝试了解单击或拖动。 so i added that functions in my click event : How to distinguish mouse "click" and "drag" 所以我在点击事件中添加了该功能: 如何区分鼠标的“点击”和“拖动”

ERROR : Uncaught TypeError: $(...).addEventListener is not a function 错误:未被捕获的TypeError:$(...)。addEventListener不是一个函数

As a comment pointed out, You are trying to use the "vanilla" javascript way to add an eventlistener on a jQuery object. 正如评论指出的那样,您正在尝试使用“香草” javascript方法在jQuery对象上添加事件监听器。

$.clickOverlay = function(whichOverlay) {
        var flag = 0;
        $("#runtime-overlay"+whichOverlay).addEventListener("mousedown", function(){
            flag = 0;
        }, false);
        $("#runtime-overlay"+whichOverlay).addEventListener("mousemove", function(){
            flag = 1;
        }, false);
        $("#runtime-overlay"+whichOverlay).addEventListener("mouseup", function(){
            if(flag === 0){
                console.log("click");
            }
            else if(flag === 1){
                console.log("drag");
            }
        }, false);
}

instead try: 而是尝试:

$.clickOverlay = function(whichOverlay) {
        var flag = 0;
        $("#runtime-overlay"+whichOverlay).on("mousedown", function(){
            flag = 0;
        });
        $("#runtime-overlay"+whichOverlay).on("mousemove", function(){
            flag = 1;
        });
        $("#runtime-overlay"+whichOverlay).on("mouseup", function(){
            if(flag === 0){
                console.log("click");
            }
            else if(flag === 1){
                console.log("drag");
            }
        });
}

addEventListener is the javascript way to listen for events, but you call it on a JQuery object. addEventListener是侦听事件的JavaScript方法,但是您可以在JQuery对象上调用它。 Give a look at JQuery.on() to manage events using JQuery. 看一下JQuery.on()来使用JQuery管理事件。

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

相关问题 TypeError:elem.addEventListener不是一个函数 - TypeError: elem.addEventListener is not a function 未捕获到的typeError:input.addEventListener不是函数 - Uncaught typeError : input.addEventListener is not a function 未捕获的类型错误:ele.addEventListener 不是函数 - Uncaught TypeError: ele.addEventListener is not a function 未捕获的TypeError:button.addEventListener不是函数 - Uncaught TypeError: button.addEventListener is not a function 将按键或事件侦听器添加到输入中,“ TypeError:…addEventListener不是函数” - Add keypress or eventlistener to input, “TypeError: …addEventListener is not a function” 未捕获的TypeError:Window.addEventListener不是函数 - Uncaught TypeError: Window.addEventListener is not a function 未捕获的TypeError:check.addEventListener不是函数 - Uncaught TypeError: check.addEventListener is not a function Openlayers源tileWMS? TypeError:a.addEventListener不是一个函数 - Openlayers source tileWMS? TypeError: a.addEventListener is not a function JavaScript 未捕获类型错误:replay.addEventListener 不是 function - JavaScript Uncaught TypeError: replay.addEventListener is not a function 未捕获的类型错误:document.getElementsByClassName(...).addEventListener 不是函数 - Uncaught TypeError: document.getElementsByClassName(...).addEventListener is not a function
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM