3

カラーボックスポップアップ内のボタンのjQueryクリックイベントに問題があります。

ボタンは次のとおりです。

<div id="popup">
    <button class="close_bu">Close</button>
</div>

デフォルトでは、次のイベントが添付されています。

jQuery('.close_bu').bind('click',function(){        
            jQuery.colorbox.close();
});

別のイベントを発生させるとき、デフォルトの動作を変更したいので、次のようにします。

jQuery('#anotherpopup').on('click','.deleteplan_button',function(){

            jQuery('#popup .close_bu').addClass('returnBack');
            jQuery('#popup .returnBack').removeClass('close_bu');

            jQuery.colorbox({inline:true , href:"#popup", opacity: 0.6, width: "600px"});
return false;
         })

私が追加しました:

jQuery('#popup').on('click','.returnBack',function(){
                e.preventDefault();
                //Do something
})

しかし、.returnBackにアタッチされた新しいイベントは機能せず、ボタンをクリックするとcloseイベントが発生します。ボタンに.close_buクラスがなくても、そのイベントは発生し続けます。

少し混乱しています:S

4

1 に答える 1

2

あなたのコードには id の要素がありませんpopup。したがってjQuery('#popup')、何もしません (または、コードの重要な部分を示していません)。

アップデート:

クラスを削除する代わりに.unbind()を使用する必要があります

$('#popup .close_bu').unbind('click');

'#popup .close_bu'イベントに結び付けたい要素を選択するか、この場合はイベントから切り離します。jQuery css セレクターは css のように見えます。イベントとハンドラー間の接続は css を使用しません。クラスを追加および削除する全体的なトリックは、さまざまな css スタイルをトリガーすることです。これは要素の外観を変更するだけで、イベントは変更しません。

于 2012-05-16T13:32:14.107 に答える