2013-08-31 118 views
3

我想弄清楚如何隱藏一個元素,以便在用戶點擊關閉按鈕時不再顯示。基本上它只是一個下降的促銷信息。如果用戶點擊取消,我不希望此元素再次向該用戶展示。如何點擊某個用戶永久隱藏某個元素

我想它喜歡這裏http://codecanyon.net/

看到的旗幟功能是有辦法做到這一點?我試着用谷歌搜索這個答案,但無法真正找到這個例子。我認爲這需要用cookie來實現。此外,如果是這種情況,是否會導致SSL加密頁面出現問題?

更新:如何設置一個cookie會在這麼多天後過期?

這裏是我的代碼:

<div id="promotional-banner"> 
     <div id="promotional-wrapper"> 
      <div id="promotional-container"> 
       <p class="left"><img src="<?php echo Mage::getStoreConfig(Mage_Core_Model_Store::XML_PATH_SECURE_BASE_URL); ?>media/wysiwyg/infortis/fortis/custom/rewards.png" alt="Earn Rewards" title="Earn Rewards" /> Earn reward points every time you shop at WeePumpkin.com</p> 
       <div class="right close-button"><span>X</span> Dismiss</div> 
       <div class="clear"></div> 
      </div> 
     </div> 
    </div> 

    <script type="text/javascript"> 
    $$ = jQuery; 
    $$(document).ready(function() { 
     if ($$("#promotional-banner").is(":hidden")) { 
     $$("#promotional-banner").delay("1000").fadeIn(); 
     } 

    $$("div.close-button").click(function(){ 
     $$("#promotional-banner").delay("slow").fadeOut(); 
    }); 
    }); 
    </script> 

回答

2

如果你的意思是「永遠的永遠」,當他們離開頁面,回來一樣,你將需要把服務器端技術。

如果你有沒有註冊的用戶,你可以使用PHP(或類似的)來捕獲他們的IP並用標誌標記該IP。標誌初始狀態將是'show'或類似。一旦他們點擊關閉,做一個快速的jQuery ajax請求到您的服務器標記爲'隱藏'標誌。

顯然,如果他們改變了他們的IP,你的信息會過時。

您也可以使用cookie作爲解決方案,但是如果他們清除了cookie,它將會丟失。

+0

感謝您的快速響應!如何設置一個在過了很多天後過期的cookie?任何想法如何做到這一點? – Chris78

+0

http://stackoverflow.com/questions/1458724/how-to-set-unset-cookie-with-jquery – Chris

0

您可以使用後端和前端解決方案的組合來實現此目標。基本上,當一個用戶註冊時,他的用戶名是針對後端標誌(在數據庫中)註冊的,如isPromotionsAllowed。 當用戶最初註冊時,該標誌必須設置爲true。當他通過再次登錄訪問應用程序時,如果數據庫中的此標誌設置爲true,則會向他顯示促銷內容,如橫幅。當他點擊「解散」時,後端數據庫字段將更新爲false,因此他不會再看到內容。

爲了改善用戶體驗,該標誌也可以擴展到cookies。當他點擊解除時,可以保存包含該標誌的cookie,以便我們可以將額外的往返節省到服務器並返回以檢查是否促銷事宜將被顯示與否。這是一個有條件的增強,我們可以在基本解決方案的基礎上實施。

相關問題