如果单击,如何永久隐藏某个用户的元素

时间:2013-08-31 03:19:01

标签: jquery hide dismiss

我想弄清楚如果用户单击“关闭”按钮,如何隐藏元素以不再显示。基本上它只是一个下拉与促销信息。如果用户点击了dismiss,我不希望再次向该用户显示该元素。

我希望它的功能类似于此处显示的横幅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 个答案:

答案 0 :(得分:2)

如果您的意思是“永远永远”,就像他们离开页面然后回来一样,您将需要采用服务器端技术。

如果您有未注册的用户,您可以使用PHP(或类似)来捕获其IP并使用标记标记该IP。标志初始状态将是“显示”或类似。一旦他们点击了dismiss,就向你的服务器做一个快速的jQuery ajax请求,将标志标记为'hide'。

显然,如果他们改变了他们的IP,那么你的信息将会过时。

您也可以使用Cookie作为解决方案,但如果他们清除了Cookie,则会丢失。

答案 1 :(得分:0)

您可以使用后端和前端解决方案的组合来实现这一目标。基本上,当用户注册时,他的用户名是根据isPromotionsAllowed的后端标志(在数据库中)注册的。 最初注册用户时,必须将此标志设置为true。当他再次登录访问应用程序时,如果db中的此标志设置为true,则会向他显示横幅等促销内容。当他点击“关闭”时,后端数据库字段将更新为false,因此,他将不再看到该内容。

为了改善用户体验,这个标志也可以扩展到cookie。当他点击dismiss时,可以保存一个包含该标志的cookie,以便我们可以节省额外的往返服务器并返回检查是否促销事宜是否展示。这是一个条件增强,我们可以在基本解决方案之上实现。