0

作成時にカラーボックスインターフェイスへのリンクを追加しようとしています。最終的には現在表示されている画像ファイルにリンクしますが、今のところ、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関数内にラップされています。リンクがクリックされたときにコンソールログを機能させることができません。私はそれを理解しようとして壁に頭を打ちつけてきました。助けてくれてありがとう!

4

2 に答える 2

1

イベントを委任する必要があります。

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

于 2013-01-31T03:28:57.783 に答える
0

cbox が初期化された直後にリンクが追加されているようです。これは、コンパイラが数行下のクリック バインディング関数に到達したときに準備ができていない可能性があります。

これを試して:

...
// Add Print Button
if ($('#print-one').length ) {
    // Do Nothing
}else {
    $('<a href="#">Print</a>').insertAfter('#cboxNext').click(function() {
        console.log('Works');
    });
}
于 2013-01-31T03:38:52.250 に答える