我无法获得我添加的元素来激活一个函数

时间:2013-01-31 03:20:47

标签: onclick colorbox insertafter

我正在尝试在创建colorbox界面时添加链接。它最终将链接到当前显示的图像文件,但是现在我只想让console.log工作。它正确地添加了链接(#print-one)但是在单击链接时我无法运行函数。任何帮助将不胜感激!

$(document).bind('cbox_complete', function () {
    // Show close button with a delay.
    $('#cboxClose').css('opacity', 1);
    // Add Print Button
    if ($('#print-one').length ) {
        // Do Nothing
    }else {
        $('#cboxNext').after('<a href="javascript:void(0)" id="print-one">Print</a>');
    }
});

$('#print-one').click(function() {
    console.log('Works');
});

这全部包含在$(document).ready函数中。单击链接时,我无法让控制台日志工作。我一直在撞墙试图解决这个问题。谢谢你的帮助!

2 个答案:

答案 0 :(得分:1)

您需要委派活动。

$(document).on('click', '#print-one', function(){});

答案 1 :(得分:0)

似乎链接是在初始化cbox之后添加的,当编译器到达下面几行的点击绑定功能时,这可能还没有准备好。

试试这个:

...
// Add Print Button
if ($('#print-one').length ) {
    // Do Nothing
}else {
    $('<a href="#">Print</a>').insertAfter('#cboxNext').click(function() {
        console.log('Works');
    });
}