如果用戶需要登錄時向用戶發送提醒消息,但同時避免發出ajax呼叫,最佳方式是什麼?我可能有像<a href="#" id="vote">
這樣的代碼,它會根據點擊觸發一個ajax函數。我想我會檢查服務器端,如果用戶登錄並替換它: <a href="#" class="not-logged-in">
。如果點擊了它,它會提醒他們他們需要登錄。問題是我可能有一些css樣式的#vote。如果我做到了<a href="#" id="vote" class="not-logged-in">
它會觸發ajax調用和警報,所以我必須用a check包裝ajax調用以查看not-loggin-in類不存在,但它看起來有點乏味爲所有具有ajax調用的點擊函數執行此操作。或者,我會調用父ID並設置#parentId a {}的樣式?或者有沒有更好的方法?我不確定人們通常會做什麼,所以尋找一些意見。謝謝!如果用戶未登錄,則發送提醒消息
0
A
回答
0
如何:
的HTML:
<body class="not-logged-in"> -- or -- <body class="logged-in">
<a href="/vote/13" class="vote">Vote!</a>
jQuery的:
$('body.logged-in .vote').click(function(){
$(this).append($.get($(this).attr('href'));
return false;
});
0
如果用於a#vote
元素的點擊處理程序綁定到vote
ID,你會必須更改註銷用戶的ID或向點擊處理程序添加條件。
您提到在繼續進行AJAX調用之前,您不希望檢查not-logged-in
類,所以我假設這意味着您寧願單獨保留點擊處理程序並想出其他方法該鏈接看起來像投票鏈接,但不像投票鏈接。
你可以做一個備用的ID,並給它相同的造型,就像這樣:
HTML:
<a href="#" id="fakeVote">
CSS:
#vote, #fakeVote { /* CSS here */ }
約的好處這是你可以爲a#fakeVote
元素添加一個新的點擊處理程序來提醒t他註銷了用戶。
0
如果您想要減少每次點擊的DOM查找時間,只需將「loggedIn」類附加到body元素,並在頁面加載後執行檢查。
var loggedIn = $('body').hasClass('loggedIn');
現在,您不必檢查鏈接本身,而是檢查該變量。
或者,爲您的ajax調用編寫一個包裝器。
$.fn.ajaxLoggedIn = function() {
if (loggedIn) {
$.ajax.apply(this, arguments);
}
else {
alert('You are not logged in');
}
}
相關問題
- 1. 如果用戶未登錄,則發送警報消息?
- 2. C#asp.net - 推送通知(如果有新消息,提醒用戶)
- 3. asp.net會員不發送登錄提醒
- 4. 如果無法加載Url,則在HTML中發送提醒消息
- 5. Lync客戶端:如何登錄和發送短消息
- 6. 登錄消息發送至零?
- 7. Laravel [登錄消息]未發現異常
- 8. 如果文本框爲空,則使用PHP提交提醒消息
- 9. 推送通知,iPhone上未收到提醒消息
- 10. PHP js提醒消息,當表單發送好
- 11. 如何發送提醒
- 12. 如果用戶未登錄,重定向
- 13. xmpp facebook未發送消息
- 14. Qt.QueuedConnection從未發送消息
- 15. 如果用戶未登錄,則禁止URL
- 16. 如何使用Django消息傳遞來提醒其他用戶?
- 17. JavaScript提醒錯誤消息
- 18. 雙重提醒消息
- 19. JSON編碼提醒消息
- 20. Iphone彈出提醒消息
- 21. 提醒用戶新紀錄
- 22. 隱藏登錄用戶的消息嗎?
- 23. 如果用戶未登錄到Facebook,FB.getLoginStatus不會觸發
- 24. 如何取消提醒訊息?
- 25. 使用硒向用戶發送消息
- 26. 使用codeigniter登錄而沒有提醒錯誤信息
- 27. 提取未讀消息,由用戶
- 28. 如果提交消息包含文本,則觸發構建
- 29. Google App Engine - 如何處理向用戶發送提醒?
- 30. 登錄用戶:要發送給瀏覽器的什麼信息?
謝謝,沒有想到這樣做。 – Roger 2009-10-17 17:07:14