簡體   English   中英

在回調函數中調用href

[英]Calling href in Callback function

我的頁面上有一個錨標簽用於注銷。

<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");
                    }

在觸發“是”時調用的匿名函數中,您想要執行以下操作,而不僅僅是返回true:

  1. 獲取href(您可以使用$('selector').attr('href');輕松獲得它)
  2. 對您在第1點抓取的網址執行window.location.href

如果你想在a標簽只是做它的東西,刪除任何preventDefault()stopPropagation() 在這里,我提供了兩種不同的方法:)

不要使用document.location ,而要使用window.location.href 您可以在這里看到原因。

您在“是”調用中的代碼應該看起來像,當然插入了您的代碼:

'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() ,因為它不是函數!

我在許多項目中都使用過此功能,因此建議使用window.location.href

'Yes': function () {
                        $(this).dialog('close');
                         window.location.href="your url"    
                        return true;
                    },

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM