2011-09-21 84 views
0

好吧,我正在爲iPad創建一個圖庫站點。它需要能夠輕掃,當你點擊縮略圖時,它會使用AJAX加載圖庫圖像。Click事件不會在iPad中註冊

的HTML看起來是這樣的:

<section id="col1"> 
    <nav> 
    <div class="appGallery"> 
     <div class="imageHandler"></div> 
     <ul> 
     <li><a href="1.html"><img src="1.jpg" alt="" /></a></li> 
     <li><a href="2.html"><img src="2.jpg" alt="" /></a></li> 
     <li><a href="3.html"><img src="3.jpg" alt="" /></a></li> 
     <li><a href="4.html"><img src="4.jpg" alt="" /></a></li> 
     </ul> 
    </div> 
    </nav> 
</section> 

我使用的是刷卡插件,基本上什麼imageHandler確實是跟蹤移動(觸摸/鼠標事件)。它有一個更高的z-index覆蓋無序列表,所以這基本上意味着'a'鏈接不起作用。

我已經寫了一個全新的算法來檢測基於高度和event.pageY在$('#col1 nav')上點擊哪個縮略圖。我的算法在桌面上完美運行,但不是iPad。點擊事件不會註冊。

下面是JavaScript的的樣子:

var dragging = false; 

imageHandler.bind('touchmove', function(event) { 
    dragging = true; 
}); 

imageHandler.bind('touchend', function(event) { 
    var touch = event.originalEvent.touches[0] || event.originalEvent.changedTouches[0]; 

    if (dragging) {   
    //swipe column 
    dragging = false; 
    } 
    else { 
    //I've done some testing myself by including an alert() here, it pops out. 
    $('#col1 nav').click(function(event) { 
     //but when I insert and alert() here, nothing happens 
     var touch = event.originalEvent.touches[0] || event.originalEvent.changedTouches[0]; 

     //my algorithm to select the thumbnails using touch.pageY 
     //ajax using .load 
    }); 
    dragging = false; 
    } 
    return false; 
}); 

任何人有任何的想法有什麼不好?

回答

0

看起來像你在「touchend」事件中綁定它。因此,只有當您停止拖動時,纔會註冊點擊。

您是否嘗試過使用直播活動將其綁定到函數之外?像這樣:

$('#col1 nav').live("click", function(event) { 
相關問題