我无法让我添加的元素激活函数



我正在尝试在创建颜色框界面时添加指向它的链接。它最终将链接到当前显示的图像文件,但现在我只想让控制台.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 函数中。单击链接时,我只是无法使控制台日志正常工作。我一直在用头撞墙,试图弄清楚。感谢您的任何帮助!

您需要委派事件。

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

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

试试这个:

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

最新更新