-1

私は古典的な警告のJavaScriptウィンドウのスタイルを設定できるsmoke.jsを使用しています。

あなたがしなければならないのは.smoke、アラートの前に配置することです。smoke.confirm()

私が抱えている問題は、ok/cancel コールバックにあり、うまくいきません。

これはウェブサイトが示す例です。

`これらは、js の alert() を使用するのと同じ方法で実装できます...「煙」を入れるだけです。その前に。

ただし、confirm() の置き換えは、少し異なる方法で使用する必要があります。

smoke.confirm('You are about to destroy everything. Are you sure?',function(e){
    if (e){
        smoke.alert('OK pressed');
    }else{
        smoke.alert('CANCEL pressed');
    }
});

私が持っているコードは次のとおりです。

$(".upb_del_bookmark").click( function() {
        if(smoke.confirm(delete_message)) {
            var post_id = $(this).attr('rel');
            var data = {
                action: 'del_bookmark',
                del_post_id: post_id
            };
            $.post(upb_vars.ajaxurl, data, function(response) {
                $('.bookmark-'+post_id).fadeOut();
                $('.upb_bookmark_control_'+post_id).toggle();
            });

スタイルボタンとすべてが表示されますが、[OK]をクリックしても上記の機能が実行されず、何も起こりません。

確認

だから私はそれを

$(".upb_del_bookmark").click( function() {
        if(smoke.confirm(delete_message, function(e))) {
            if(e){
            var post_id = $(this).attr('rel');
            var data = {
                action: 'del_bookmark',
                del_post_id: post_id
            };
            $.post(upb_vars.ajaxurl, data, function(response) {
                $('.bookmark-'+post_id).fadeOut();
                $('.upb_bookmark_control_'+post_id).toggle();
            });
        }}

しかし、今はクリックしても何も表示されません

私はプログラマーではありません。助けてください!!!!!

試してみたい場合は、david:123321 で latinunit.org にログインしてから、投稿に移動してお気に入りに追加してみてください。

アップデート

次のことを試しました。ウィンドウは表示されますが、機能は実行されません。

$(".upb_del_bookmark").click( function() {
        smoke.confirm(delete_message, function(e) {
            if(e){
            var post_id = $(this).attr('rel');
            var data = {
                action: 'del_bookmark',
                del_post_id: post_id
            };
            $.post(upb_vars.ajaxurl, data, function(response) {
                $('.bookmark-'+post_id).fadeOut();
                $('.upb_bookmark_control_'+post_id).toggle();
            });
        }})
        return false;
    });

スモークスクリプトの js ファイルは次のとおりです。

キャンセルをクリックすると、次のように表示されます。

キャッチされていない TypeError: オブジェクト # のプロパティ 'callback' は関数ではありません Line:198 Uncaught TypeError: オブジェクト # のプロパティ 'callback' は関数ではありません Line:208

以下は、スモーク スクリプトのこれらの行にあるものです。

finishbuildConfirm: function (e, f, box)
    {
        smoke.listen(
            document.getElementById('confirm-cancel-' + f.newid),
            "click", 
            function () 
            {
                smoke.destroy(f.type, f.newid);
                f.callback(false);
            }
        );

        smoke.listen(
            document.getElementById('confirm-ok-' + f.newid),
            "click", 
            function () 
            {
                smoke.destroy(f.type, f.newid);
                f.callback(true);
            }
        );
4

1 に答える 1

1

組み込みの JavaScript アラート/確認機能は同期的ですが、これはそうではありません。javascript コールバック パターンを使用して確認の結果を処理する必要があります。アクションに応答する必要があるときに呼び出される Smoke.confirm() 関数に関数を渡します。

次のコードを参照してください。Smoke.confirm() の周りの if が削除され、処理コードが Smoke.confirm() 関数に渡される関数にラップされます。

$(".upb_del_bookmark").click( function() {
    smoke.confirm(delete_message, function(e) {
        if(e){
            var post_id = $(this).attr('rel');
            var data = {
                action: 'del_bookmark',
                del_post_id: post_id
            };
            $.post(upb_vars.ajaxurl, data, function(response) {
                $('.bookmark-'+post_id).fadeOut();
                $('.upb_bookmark_control_'+post_id).toggle();
            });
        }
    });
}

JavaScript のコールバック パターンについて少し読むことを強くお勧めします。これは非常に一般的であり、理解しておくと、このプラグインや他の多くのプラグインを使用するのに役立ちます。

于 2012-07-31T02:02:06.267 に答える