【问题标题】:How to identify a button is clicked如何识别按钮被点击
【发布时间】:2015-05-29 23:10:28
【问题描述】:

我通过框架 CodeIgniter 制作了我的网站,

Here is my personal website

在第一页,当我点击“paysage”图片(在右上角)或“paysage”按钮(在菜单中)时,它会转到“paysage”页面,然后一旦我返回第一页,我想要的是:“paysage”图片保持颜色。

'area'标签和'li'标签进入同一个页面,'img'标签是我在CSS背景url中放置彩色图像的地方。

HTML:

<img id="paysage" alt="page_accueil" src="<?php echo base_url('assets/img/cadre_vide.png') ?>" />

<area alt="paysage" shape="poly" coords="518, 81, 713, 99, 719, 232, 520, 202" href="<?php echo site_url('categories/voir/' . $paysage->id); ?>"/>

<li><a <?php if($this->uri->segment(3) == "1" && $this->uri->segment(1) == "categories"){ ?> class="active" <?php } ?> href="<?php echo site_url('categories/voir/1') ?>">Paysage</a></li>

CSS:

#paysage{
    top:0;
    opacity:0;
    padding:0;
    z-index:-1;
    position:absolute;
    background-repeat:no-repeat;
    background:url('../../assets/img/hover-paysage.png') no-repeat;
    -webkit-background-size: cover; /* pour anciens Chrome et Safari */
    background-size: cover; /* version standardisée */
}

所以我尝试了这样的 jQuery

$('area[alt="paysage"]').click(function(){
    $('#paysage').fadeTo('fast', 1);
});

当然不行,因为点击改变了页面(URL),jQuery代码只能在同一个页面做一些事情。

所以我明白了,我需要匹配:
--如果网址改了再返回,
--或者点击了区域标签(或者li标签),

这样我就可以将彩色图像的不透明度设置为 1。

更简单的说,我想要的是:
“paysage”图片保持彩色,一旦点击并转到其他页面然后返回,它仍然是彩色的。

我会为其余的图片这样做。 我希望这足够清楚,非常感谢那些可以帮助我的人!

【问题讨论】:

  • 我想你指的是这个 css 类,developer.mozilla.org/en-US/docs/Web/CSS/:visited
  • 你的 jQuery 中有错字:cilck 而不是 click
  • 啊,是的,我在这里犯了一个愚蠢的错误,谢谢
  • 我在css中尝试了“:visited”,点击的是标签和
  • 标签,它们不支持“background”和“background-image”,而且图片在 标签中,所以它不起作用。但是感谢您的帮助“chris85”。

标签: php jquery html css codeigniter


【解决方案1】:

有 3 个选项。

  1. 在服务器端保存一些信息,以确定是否有人点击了它们。 (很可能不受欢迎)
  2. 在会话中保存数据,以便您可以在站点的任何地方使用和访问它。 (不如将信息保存在数据库或其他东西中。但仍然是服务器端)
  3. 使用 JS localStorage。这可能就是你想要的那个

使用 localStorage,您可以使用纯 JS 将信息保存在客户端,并检查用户是否单击了图像/按钮,并决定是否使图像保持彩色。

我知道 W3Schools 是一个糟糕的资源,但它是重点。 http://www.w3schools.com/html/html5_webstorage.asp

【讨论】:

  • 我不完全明白如何使用这个“localStorage”,我是网络语言的初学者,需要更多细节,否则我不得不放弃,仍然非常感谢你帮助!
  • localStorage 就像会话。不同之处在于会话存在于服务器上,而本地存储存在于浏览网站计算机的人身上。取决于您是否想在JSPHP 中执行您需要的操作。如果你点击上面的链接,它有一些你可以玩的例子。
【解决方案2】:

如果您对 localStorage / 缓存感到满意,那么这可能是您应该使用的。

否则,如果这些元素可以标记为“已访问”,Remy Sharp 编写的 jQuery 插件可能就是您正在寻找的东西。 https://remysharp.com/2008/02/25/visited-plugin

这是插件的演示:http://download.remysharp.com/visited.html

附:真的很喜欢这个网站!

【讨论】:

  • 嗨,我刚刚尝试了'visited' jQuery 插件,它不起作用。我复制我的 js 页面中的所有代码,然后 $('area[alt="paysage"]').visited(function(){ $('#paysage').fadeTo('fast', 1); }) ;没啥事儿。但仍然感谢您的帮助并喜欢我的网站。
猜你喜欢
相关资源
最近更新 更多
热门标签