2012-10-15 29 views
1

我有下面的代碼,它改變了點擊鏈接時的背景顏色。使用iPhone中的Jquery改變背景顏色的延遲

function showSelectEffect(obj) { 
     $(obj).css("background-color", "#d7d7d7"); 
      } 

的方法被稱爲鏈接的onclick如下

<a onclick="showSelectEffect(this);" href="test.html">sample text</a> 

的問題是亮點一秒鐘的延遲後發生,點擊時不會立即發生。我試過在onmousedown事件上調用showSelectEffect函數,但它仍然是一樣的。請讓我知道如何改善表現。

+0

我與jQuery Mobile的,它正在採取一秒鐘左右註冊任何點擊事件類似的問題。儘管有很多谷歌搜索,但始終沒有找到問題的根源。我很感興趣,看看你是否得到了一個好的答案,假設它是相同的問題 – Joe

回答

1

爲什麼不使用:active css屬性?

/* CSS */ 
a:active { 
    background-color:#d7d7d7; 
} 

/* HTML */ 
<a href="test.html">test</a> 
+0

剛試過這個,它仍然是一樣的。 – Derin

+0

你使用哪個瀏覽器和什麼設備?也許這是您使用的設備的功能問題 –

2
<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"); 
});​ 

Try the demo here

您可以嘗試的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'); 
    });​ 
0

你也可以使用addClass功能

.changeBackground{ 
    background-color:#d7d7d7; 
} 



$(body).addClass('changeBackground');