动态创建的元素单击事件在IE11中不起作用

时间:2017-08-21 12:02:49

标签: javascript qliksense

我们正在为我们的某个Web应用程序使用Qlik sense + geo analytic。 请查看下面的图片Screen shot of my qlik sense map

在上图中,您可以看到不同颜色的针脚。每个引脚都有自己的信息。 Qlik sense没有为这些引脚提供任何点击事件,qlik sense仅提供鼠标悬停事件。但是我们的客户要求我在pin的click事件上显示一些弹出窗口,而不是鼠标悬停。

我已通过JavaScript document.activeElement完成此操作,但该代码仅在Chrome中运行。

请找到以下代码:

var currentELement = document.activeElement;

currentELement.addEventListener("click",function (event) {
    var el = event.target || event.srcElement;
    var outerHtml = el.outerHTML;

    if(outerHtml!=undefined && outerHtml!="" && outerHtml.indexOf("<canvas")!=-1)
    {
        //It will dsiplay popup
        document.getElementById("LP").style.display="block"; 
        document.getElementById("CT").style.display="none"; 
    }
});

注意:我已经google了很多,并且知道在IE-9之前可能不了解addEventListener,所以我们必须使用attachEvent。

还尝试了以下代码:

function bindEvent(elmnt, eventName, eventHandler) {
    if (elmnt.addEventListener){
        elmnt.addEventListener(eventName, eventHandler, false); 
    } 
    else if (el.attachEvent){
        elmnt.attachEvent(eventName, eventHandler);
    }
}

var currentELement = document.activeElement;

bindEvent(currentELement, "click", function (event) {
    var el = event.target || event.srcElement;
    var outerHtml = el.outerHTML;

    if(outerHtml!=undefined && outerHtml!="" && outerHtml.indexOf("<canvas")!=-1)
    {
        document.getElementById("LP").style.display="block"; 
        document.getElementById("CT").style.display="none"; 
    }
});

如果我做错了,请告诉我替代解决方案或纠正我。

0 个答案:

没有答案