我有下面的代码,当点击时改变链接的背景颜色。
function showSelectEffect(obj) {
$(obj).css("background-color", "#d7d7d7");
}该方法在链接的onclick中调用,如下所示
<a onclick="showSelectEffect(this);" href="test.html">sample text</a>问题是,高亮显示是在几秒钟的延迟之后发生的,而不是在单击时立即发生。我尝试过在onmousedown事件上调用showSelectEffect函数,但它仍然是一样的。请让我知道我可以如何提高性能。
发布于 2012-10-15 15:28:47
<a class="showSelectEffect" href="test.html">sample text1</a>
<a class="showSelectEffect" href="test.html">sample text2</a>
<a class="showSelectEffect" href="test.html">sample text3</a>
<a class="showSelectEffect" href="test.html">sample text4</a>
$('.showSelectEffect').on('click',function(){
event.preventDefault();
$(this).css("background-color", "#d7d7d7");
});您可以尝试使用css,而不是使用jquery,后者会更快一点。
a:active {
background-color:#d7d7d7; //this line should go in your stylesheet
}尽量将JS代码和HTML分开。这是一个很好的练习。
另一种选择是在样式表中定义css类,如下所示。
a.showSelectEffectColor {
background-color:#d7d7d7; //this line should go in your stylesheet
}
$('.showSelectEffect').on('click',function(){
event.preventDefault();
$(this).addClass('showSelectEffectColor');
});发布于 2012-10-15 15:26:39
为什么不使用:active css属性呢?
/* CSS */
a:active {
background-color:#d7d7d7;
}
/* HTML */
<a href="test.html">test</a>发布于 2012-10-15 15:31:04
您也可以使用addClass函数
.changeBackground{
background-color:#d7d7d7;
}
$(body).addClass('changeBackground');https://stackoverflow.com/questions/12890941
复制相似问题