2010-08-07 63 views
1

我使用的是自來水的鏈接時具有jQtouch問題,jQtouch點擊並鏈接問題

我想獲得一個鏈接改變背景顏色挖一拉iPhone的AppStore(藍色)時

所以我用這個代碼:

<script> 
    var jQT = new $.jQTouch({ 
     statusBar: 'black', 
     useFastTouch: true 
    }); 
    $(function(){ 
     $("a").live('tap', function() { 
      $(this).addClass("active"); 
     },function() { 
      $(this).removeClass("active"); 
     }); 
    }); 
</script> 

了 「活躍」 的風格包含了藍色背景:

.active { 
    background-image: -webkit-gradient(linear, left top, left bottom, from(#048bf4), to(#015de6)); 
} 

和鏈接是這樣的:

<a id="a" href="http://google.com"><img src="someimage.png"><div>Google</div></a> 

,當我點擊的鏈接,如預期的問題背景的變化,但該鏈接不工作,當我刪除手指新的背景不會被刪除^^

有人能指出我做錯了什麼:/?

回答

0

「活動」類應,如果被點擊或輕敲被自動添加到一個錨,所以你不應該需要添加和刪除「活動」類自己。

你應該有一個分配給錨的元素和一個背景圖像正常的背景圖像:活躍:

a { 
    background-image: ... 
} 

a:active { 
    background-image: ... 
} 

希望這將解決你的問題。

0

感謝威廉, 我刪除jQtouch和只添加的jQuery代碼水龍頭的事情,

$(document).ready(function() { 
    var delay = 100; 
    var hovertime = null; 
    var hoverdelay = null; 
    $("#list a").bind('touchstart mouseover', function(){ 
     clearTimeout(hoverdelay); 
     hovertime = new Date().getTime(); 
     var $el = $(this).add("*", this); 
     hoverdelay = setTimeout(function(){ 
      $el.addClass("active"); 
     }, delay); 
    }); 
    $("#list a").bind('touchend mouseup', function() { 
     clearTimeout(hoverdelay); 
     var now = new Date().getTime(); 
     var $el = $(this).add("*", this); 
     if(now < hovertime + delay) { 
      $el.addClass("active"); 
      setTimeout(function(){ 
       $el.removeClass("active"); 
      }, delay); 
     } else { 
      $el.removeClass("active"); 
     } 
    }); 
    $("#list a").bind('touchmove touchcancel mouseout', function() { 
     clearTimeout(hoverdelay); 
     var $el = $(this).add("*", this); 
     $el.removeClass("active"); 
    }); 
}); 

我已經在這裏放一個樣本:http://fun.r4dius.net/temp/iphone.html

它的工作原理基本上是這樣的:

  • 當點擊它只能切換到「主動」 100ms的超時後,這樣,如果你只是想刷卡頁面也不會在每個抽頭激活,
  • 切換到「活動」,所有的元素孩子的(*)時被設置爲「主動」太
  • 結束水龍頭
    • ,如果它是「活動」時,「活動」類去除,
    • ,如果它是一個快速抽頭(當「touchend」之前設置「激活」時),我們仍切換到「主動」和100ms的延遲之後將其刪除,只是爲了顯示它是錄音
  • 如果我們在錄音時移動,則「主動」類被移除

這裏是我現在面臨的最後一個問題:/

出於某種原因,如果我點擊,然後我開始在完全相同的時間,該元素設置爲激活(100ms的延遲後)移動,它保持活動狀態,直到發生「touchend」,而不是像應該的那樣去除活動類,是否有人知道爲什麼?

我測試這個jQtouch預覽頁面上,無法重現它, 但如果我用jQtouch我的網頁上出現的問題是相同的:/