2013-08-31 121 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,以便我们可以将额外的往返节省到服务器并返回以检查是否促销事宜将被显示与否。这是一个有条件的增强,我们可以在基本解决方案的基础上实施。

相关问题