[英]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:
$('selector').attr('href');
輕松獲得它) 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.