0

ページにログアウト用のアンカー タグがあります。

<a href="/logout/" id="lnk-log-out" />

ここでは、jQuery UI ダイアログで確認のためのポップアップを表示しています。

ユーザーがダイアログで [はい] をクリックすると、リンク ボタンのデフォルト アクション、つまり href="/logout" を実行する必要があります。

[いいえ] をクリックすると、ポップアップ ボックスが消えます。

jQueryコード

 $('#lnk-log-out').click(function (event) {
            event.preventDefault();
            var logOffDialog = $('#user-info-msg-dialog');

            logOffDialog.html("Are you sure, do you want to Logout?");
            logOffDialog.dialog({
                title: "Confirm Logout",
                height: 150,
                width: 500,
                bgiframe: true,
                modal: true,
                buttons: {
                    'Yes': function () {
                        $(this).dialog('close');
                        return true;
                    },
                    'No': function () {
                        $(this).dialog('close');
                        return false;
                    }
                }
            });

        });
    });

問題は、ユーザーが [はい] をクリックしたときにアンカーの href を起動できないことです。

どうすればこれを行うことができますか?

編集:今、私はこの方法で管理しました

'Yes': function () {
                        $(this).dialog('close');
                        window.location.href = $('#lnk-log-out').attr("href");
                    }
4

2 に答える 2

0

'Yes'が起動されたときに呼び出される無名関数では、trueを返すだけでなく、次のことを実行します。

  1. hrefを取得します(これはを使用して簡単に取得できます$('selector').attr('href');
  2. window.location.hrefポイント1で取得したURLを実行します

タグにそれだけを実行させたい場合は、またはaを削除します。ここで私は2つの異なる方法を提供しました:)preventDefault()stopPropagation()

使用せずdocument.locationwindow.location.href代わりに使用してください。理由はここでわかります。

'Yes'呼び出しのコードは、もちろんコードが挿入された次のようになります。

'Yes': function () {
            // Get url
            var href = $('#lnk-log-out').attr('href');
            // Go to url
            window.location.href = href;
            return true; // Not needed
     }, ...

:以下のコメントのAnthonyに感謝します:関数ではないため、のwindow.location.href = ...代わりに使用してください!window.location.href()

于 2013-02-20T10:30:01.100 に答える
0

私はこれを多くのプロジェクトで使用してきたので、お勧めしますwindow.location.href

'Yes': function () {
                        $(this).dialog('close');
                         window.location.href="your url"    
                        return true;
                    },
于 2013-02-20T10:32:31.670 に答える