2013-02-20 99 views
0

我的頁面中有一個錨標籤用於註銷。在回調函數中調用href

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

在這裏,我展示了一個用jQuery UI對話框進行確認的Popup。

如果用戶從對話框中單擊是,它必須執行鏈接按鈕的默認操作,我的意思是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。

我們該怎麼做?

編輯:現在我以這種方式

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

這似乎很接近我的答案用這個!如果你使用「href」,你甚至不需要先關閉對話框。 – Jimbo 2013-02-20 10:34:42

+0

@Jimbo,那是y +1 – 2013-02-20 10:35:23

+0

嘿@Murali - 有沒有理由在這裏沒有答案的答案? :) – Jimbo 2013-02-25 19:43:22

回答

0

管理在調用時「是」是被炒了,你要做到以下幾點,而不是隻返回true匿名函數:

  1. 抓住HREF(你可以得到這個容易使用$('selector').attr('href');
  2. 執行你的window.location.href到烏爾L您在點1

抓住如果你想a標籤只是做它的東西,刪除任何preventDefault()stopPropagation()。這裏我提供了兩種不同的方式:)

不要使用document.location,改用window.location.href代替。你可以看到爲什麼here

你在「是」呼叫代碼應該是這個樣子,你的代碼插入課​​程:

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

注意:由於安東尼在下面的意見:使用window.location.href = ...代替window.location.href(),因爲它的不是的一個功能!

+1

'window.location。href'是一個字符串屬性,而不是一個函數。它應該是'window.location.href = href;',而不是'window.location.href(href);'。 – 2013-02-20 10:35:45

+0

@AnthonyGrist,你是對的! – 2013-02-20 10:37:16

+0

不錯,固定! +1 – Jimbo 2013-02-20 10:37:31

0

我已經在我的很多項目,所以我建議window.location.href

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