1

私は持っています

<a href="test.php?id=2" class="confirm_delete">Click to proceed</a>

そして次のjavascript。上記のリンクをクリックすると、2つのボタンがあるダイアログボックスが表示されます。「falseを返します。」リンクタグのデフォルトイベントを停止します。しかし、「はい、削除」をクリックしたときに、クリックしたアンカーのhref値を選択して他のページに移動する機能が必要です。alert($(this).attr('id'));を試しました (「this.attr('href')」を使用してHREF値を取得できると思ったので)が、「dialog」が表示されます。

クラス名「confirm_delete」のリンクをクリックするとダイアログが表示され、[キャンセル]をクリックするとページに留まるようにするにはどうすればよいですか。それ以外の場合は、href値に従ってページに移動します。

$(".confirm_delete").click(function(){
    $('<div id="dialog">Are you sure you want to delete?</div>').appendTo('body');
    $("#dialog").dialog({
        bgiframe: true, resizable: false, height:140, modal: true,
        overlay: {
            backgroundColor: '#000', opacity: 0.5
        },
        buttons: {
            'Yes, Delete all items in recycle bin': function() {
                $(this).dialog('close');
                $(this).remove();
                alert($(this).attr('id'));
            },
            Cancel: function() {
                $(this).dialog('close');
                $(this).remove();
            }
        }
    });
    return false;
    });

ありがとうございました。

4

3 に答える 3

0

まず、クラス名にアンダースコアを使用しないようにしてください。問題を引き起こす可能性があるとどこかで読みました...

さて、ここに:

$('a.confirm-delete').click( function(event) {
    if( !confirm('are you sure you want to go?') ) return false;
});

ここでは、javascript 確認ダイアログを使用しました。これを jquery モーダル ダイアログに簡単に置き換えることができます。

ジュニア

于 2009-06-09T08:41:01.267 に答える
0

OK、var url = $(this).attr('href');で HREF の値を取得できます。$(".confirm_delete").click(function(){ 行の直後。「test.php?id=123」と表示されます。残っているのは、完全な URL を作成/取得し、その URL にリダイレクトすることだけです。

ありがとう

于 2009-06-09T08:45:12.130 に答える
0

これでうまくいくはずです:

$(".confirm_delete").click(function(){
       var $delete = $(this);
       ...
        $("#dialog").dialog({
                ...
                buttons: {
                        'Yes, Delete all items in recycle bin': function() {
                                $(this).dialog('close');
                                $(this).remove();
                                alert($delete.attr('id'));
                        }
                }
        });
        return false;
});
于 2009-06-09T08:49:23.887 に答える