jQuery(function(){
// Only do the body class once
var bodyIsClassed = false;
// Instead of binding handlers to all anchor-tags, watch live()
$( 'a' ).live( 'click', function(e){
e.preventDefault();
$( '.clicked' ).removeClass( 'clicked' );
$( this ).addClass('clicked');
if ( !bodyIsClassed ) {
$( 'body' ).addClass( 'highlight-anchors' );
}
});
});
此方法的更好应用
由于在一个页面上使用此脚本的链接很多,这意味着 jQuery 将操作每个元素并在 class-attributte 中执行操作,这可能会变得非常昂贵且缓慢。
更好的方法是使用一个通用的包装类。
这样,jQuery 只会触及当前链接和之前点击的链接。在较大的页面上速度更快、成本更低,并且通常是良好的实践。
body-class 部分不是强制性的,可以默认将链接设置为红色,只留下两个 css 规则和点击函数中的两行 javascript。
另请参阅 http://krinkle-tools.grizzdesign.nl/other-anchors.html
评论中缺少一部分,请参阅链接
http://krinkle-tools.grizzdesign.nl/other-anchors.html
获取正确的 javascript 和 css