使用ajax追加后,Javascript无法选择元素

时间:2014-10-29 08:49:06

标签: javascript append

工作流程如下: 我收到了ajax json,它会在页面中附加一个包含下载链接的div。 在下载链接,我需要检测mousedown,如果我在ajax之前追加,但这是不可能的。 我认为可以用附加的方式提供脚本,但我觉得这不是正确的方法。 带有更简单版本http://jsfiddle.net/futf53ec/

的jsfiddle链接
$('a.ajax').mousedown(function(event) {
    $( "<div id=\"download\" class=\"clearfix\"><h2>Album</h2><a class=\"btn\" href=\"#\">Right Click and Save Link As ...</a></div>" ).appendTo( ".placeholder" );
});    
            $('#download a').mousedown(function(event) {
                switch (event.which) {
                    case 1:
                        alert('Confused? Try using the other click button and "Save link as..."');
                        break;
                    case 2:
                        alert('Confused? Try using the right click button and "Save link as..."');
                        break;
                    case 3:
                        //alert('Right Mouse button pressed.');
                        break;
                    default:
                        alert('Hmmm... You have a strange Mouse!');
                }
            });

2 个答案:

答案 0 :(得分:1)

我认为$()。on()函数是你需要的:

$('a.ajax').mousedown(function(event) {
    $( "<div id=\"download\" class=\"clearfix\"><h2>Album</h2><a class=\"btn\" href=\"#\">Right Click and Save Link As ...</a></div>" ).appendTo( ".placeholder" );
});    
$('.placeholder').on('click', '#download a', function(event) {
//$('#download a').mousedown(
                switch (event.which) {
                    case 1:
                        alert('Confused? Try using the other click button and "Save link as..."');
                        break;
                    case 2:
                        alert('Confused? Try using the right click button and "Save link as..."');
                        break;
                    case 3:
                        //alert('Right Mouse button pressed.');
                        break;
                    default:
                        alert('Hmmm... You have a strange Mouse!');
                }
            });

Js fiddle

答案 1 :(得分:0)

您需要对元素使用一些后期绑定,在Jquery中尝试livebind以查看后期绑定的工作方式。