0

ファンシーボックスに完了ボタンを設定しようとしています。ユーザーがチェックボックスをチェックすると完了としてマークされ、ファンシーボックスの div がアンロードされた後にチェックボックスの値が送信され、クリックする送信ボタンがありません。値は、fancybox 内の div がアンロードされたときにのみ送信されます。値を送信するために ajax を使用しています。

「問題は、fancybox をアンロードするときに、onbeforeunload を使用している場合でも、「関数 donerem()」が実行されないことです」

ファンシーボックス

ajaxscript: これは、fancybox が閉じた後に起動するはずです

var R = jQuery.noConflict();
//REMINDER done Submit ===============================================================================
function donerem(){
    if ($('input[name=done]').attr('checked') === 'checked') {
    alert ('checked');
    var ID = $(this).attr("id");
    var dataString = 'msg_id=' + ID;
    R.ajax({
        type: "POST",
        url: "database/clientpanel/wall/donerem.php",
        data: dataString,
        cache: false,
        success: function(html){
                alert ('done');
                var div = document.getElementById("rem" + ID);
                div.parentNode.removeChild(div);

        }
    });


    }
    else
    alert ('not checked');
return false;
});
}

fancybox : 完了ボタン

<div align="left" class="post_box" onbeforeunload="donerem()">
<input type="checkbox" id="<?php echo $id; ?>" name="done">
</div>
4

1 に答える 1

0

質問を理解したかどうかは完全にはわかりません。
選択されているかどうかを確認するには、次を使用できます。

if ($('input[name=done]').attr('checked') === 'checked') {
    // selected
}
else {
    // not selected
}

次のように短くすることができます。

var selected = ($('input[name=done]').attr('checked') === 'checked') ? true : false;

fancybox が閉じたら、AJAX 呼び出しを開始する必要があります。
これを行うには、次のようにリスナーをイベントに割り当てます。

$("#some-element").fancybox({
    'scrolling' : 'no',
    'titleShow' : false,
    'onClosed' : function() {
        // make AJAX request
        donerem();
    }
});

ファンシーボックスのブログからこのコードを見つけました: http://fancybox.net/blog

于 2012-11-19T19:13:27.693 に答える