在不使用preventDefault()的情况下单击时更改链接颜色
Change link color onclick without preventDefault()
如果单击,我需要更改链接的颜色。
如果我使用event.preventDefault();
颜色被永久应用,但链接不起作用,那么uri不会被传递,然后我不能使用$_GET['route']
,因为我使用mod_rewrite将所有uri重定向到此$_GET
变体^(.*)$ index.php?route=$1
如果我不使用event.preventDefault,链接可以工作,部分也会更改,但addClass只在我单击时应用,然后dissapears。。。
我如何做到这两种行为?是否能够传递URI(HREF),并永久更改颜色onClick
?
html:
<a href="./section">Section</a>
css:
.active { color: #f00; }
Jquery:
$('a').on('click', function(event) {
//event.preventDefault
$(this).addClass("active");
});
您可以在doc ready
中尝试此操作,无需指定任何.click()
事件:
试试小提琴:http://jsfiddle.net/cmwt8/
$(function(){
var url = window.location.href; // url should be this way 'http://aaa.com/page/section'
var link = url.substr(url.lastIndexOf('/') + 1); // then you get here 'section'
$('[href*="' + link + '"]').addClass("active"); // if found add the class
});
您不需要执行任何JavaScripting。您只需要以下CSS
a:visited { color: #f00; }
编辑。如果您只想突出显示特定的链接,请在<a>
链接中添加一个类,即
HTML
<a class="sticky" href="./section">Section</a>
CSS
a.sticky:visited { color: #f00; }
这样,只有你想保持粘性的超链接才会应用的颜色
你不能这样做,因为在你被重定向到一个页面之后。所有对象类都将重置。
但是你可以把这个放在你的$(document).ready()
上
var page = window.location.pathname.split('/').pop();
$('a[href$="' + page + '"]').addClass('active');
现在,它所做的是作为页面加载示例,您有
<a href="hello.php">test</a>
作为页面加载。page
将获得您的最后一个url,例如www.mysite.com/hello.php
并且会找到一个CCD_ 13将匹配的url并添加某个类。
你不能这样做,因为这是点击的自然行为。
如果你使用preventDefault()
,这意味着你在强迫自然行为按照你的规则工作。
不管怎样,你仍然可以有一些选择。
$('a').on('click', function(event) { var href = $(this).attr('href'); event.preventDefault $(this).addClass("active"); window.location = href; });
现在,在这一点上,你的重定向将发挥作用,所以你没有办法知道链接颜色是否已经在上一次点击调用中更改,所以session
可以帮助你。
在click event
内部进行ajax调用,并在页面重定向检查已经设置了during ajax call
的会话后立即设置session variable
,然后在session
已经存在的情况下添加类。
尝试使用
$('#elementID').on('click', function(event) {
event.preventDefault();
$(this).addClass("active");
window.location.href="./section";
});
并将锚标记的href更新为"#"。即
<a href="#"
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- 使用Angular单击时更改特定图示符图标的颜色
- 单击时将文本的颜色更改为随机颜色(按钮)
- 如何在鼠标单击时更改KML多边形的颜色
- 单击ng更改列表项的活动bg颜色
- 将上次单击的按钮和访问过的按钮(未访问过的)的颜色分开
- 如何在单击按钮时更改整行的颜色
- 使用 jQuery 单击链接时更改链接背景颜色
- 通过右键单击更改完整日历中事件的背景颜色 - 不起作用
- 尝试在单击时使用Jquery更改html的背景颜色
- Adobe Acrobat X疑难解答下拉列表颜色选择.需要单击选择
- 单击按钮更改颜色/清除画布时画布出现问题
- 单击时更改点颜色
- 每次单击按钮时随机选择颜色
- 单击时更改元素的颜色
- 当再次单击时,我希望颜色消失.(喜欢/讨厌按钮,一切都可以,但如果我点击两次喜欢按钮,我希望颜色消失)
- Jquery单击颜色
- 单击时更改行颜色-ASP.NET和JavaScript
- 如何在绘图应用程序上单击颜色时播放声音
- 可单击颜色框更改聊天气泡的颜色