jQuery动态锚点不起作用

时间:2015-11-16 15:13:00

标签: jquery

我的post方法接收一个带有动态创建的pdf路径的对象,我想打开pdf。但有些浏览器会在blocked popup等函数中显示window.open()。然后我试图创建一个锚并触发点击它,但似乎不起作用:

$http.post('/Export/Create', params).success(function (o) {
    load.fadeOut(function () {
        if (o.Path.match(/\.pdf$/)) {
            console.log('returned PDF');
            var a = $('<a></a>').appendTo('body');
            a.attr({ 'href': o.Path, 'target': '_blank' });
            a.trigger('click');
        }
        // else ...
    });
}).error(function (x) { console.log(x); });

我收到returned PDF消息,因此问题在于动态锚。

提前致谢。

1 个答案:

答案 0 :(得分:1)

在加载dom后添加动态内容时,添加的元素不会存在事件处理程序,因此您必须使用类似

的内容
.on("click")

第二个参数中的'a'是元素类型,后跟一个类名,用于将监听器挂钩到例如: “button.classname”。

此外,在加载动态内容之前,页面上可能存在上述<a>函数。在稍后添加<a>后,它会很好地注册点击次数(只要您将匹配的类名添加到<script> window.addEventListener("load", CanvasProperties, false); //Global Variables var canvas, context; // Canvase Element - 2D Properties function CanvasProperties(){ canvas = document.getElementById("canvas"); context = canvas.getContext("2d"); window.addEventListener("mousemove", CustomCursor, false);}; // Customized Cursor for Game's Canvas function CustomCursor(e){ var canvasRect = canvas.getBoundingClientRect(); var xPosition = e.clientX - 5 - canvasRect.left; var yPosition = e.clientY - 5 - canvasRect.top; var img = new Image(); img.src = "hero.png"; context.drawImage(img, xPosition, yPosition, 80, 80);}; </script> )。