首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在iPhone中使用Jquery更改背景颜色时出现延迟

在iPhone中使用Jquery更改背景颜色时出现延迟
EN

Stack Overflow用户
提问于 2012-10-15 15:20:55
回答 3查看 240关注 0票数 1

我有下面的代码,当点击时改变链接的背景颜色。

代码语言:javascript
运行
复制
function showSelectEffect(obj) {
        $(obj).css("background-color", "#d7d7d7");
            }

该方法在链接的onclick中调用,如下所示

代码语言:javascript
运行
复制
<a onclick="showSelectEffect(this);" href="test.html">sample text</a>

问题是,高亮显示是在几秒钟的延迟之后发生的,而不是在单击时立即发生。我尝试过在onmousedown事件上调用showSelectEffect函数,但它仍然是一样的。请让我知道我可以如何提高性能。

EN

回答 3

Stack Overflow用户

发布于 2012-10-15 15:28:47

代码语言:javascript
运行
复制
<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,后者会更快一点。

代码语言:javascript
运行
复制
a:active {
   background-color:#d7d7d7; //this line should go in your stylesheet
}

尽量将JS代码和HTML分开。这是一个很好的练习。

另一种选择是在样式表中定义css类,如下所示。

代码语言:javascript
运行
复制
a.showSelectEffectColor {
   background-color:#d7d7d7; //this line should go in your stylesheet
}

 $('.showSelectEffect').on('click',function(){
      event.preventDefault();
      $(this).addClass('showSelectEffectColor');
    });​
票数 2
EN

Stack Overflow用户

发布于 2012-10-15 15:26:39

为什么不使用:active css属性呢?

代码语言:javascript
运行
复制
/* CSS */
a:active {
   background-color:#d7d7d7;
}

/* HTML */
<a href="test.html">test</a>
票数 1
EN

Stack Overflow用户

发布于 2012-10-15 15:31:04

您也可以使用addClass函数

代码语言:javascript
运行
复制
.changeBackground{
   background-color:#d7d7d7;
}



$(body).addClass('changeBackground');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12890941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档