2013-10-17 35 views
1

如果是'vmousedown'或'vmouseup'事件,可以獲得一些功能。 問題是,當我用win8手機「vmousedown」並按下屏幕時,移動手指並釋放,它不會觸發'vmouseup'事件。然後我tapTimer沒有被重置。 還沒有與其他手機進行測試,但我不知道是否它是阻止它的操作系統,或者如果它是jQuery Mobile。如果它是jQM,那麼它的proberly fixable。 我在jquery mobile event page上嘗試了所有可能的事件。 但他們不是任何人對我的手指運動作出反應。我最後想到的就是用X和Y來處理它。 但它感覺像很多檢查是否點擊周圍的頁面時,即使它不是這個目的定時器。當我用手機做一個小的「滑動/移動」時,jQuery Mobile會停止收聽'vmouseup'

$('#element').on('vmousedown vmouseup', function(e) { 
    if (e.type === 'vmousedown') { 
      tapTimer = setTimeout(function() { 
      isTapHold = true; 
      $this.find('.ui-block-b').find('li').addClass('gggg'); 
     }, 1500); 
    } else { 
      clearTimeout(tapTimer); 
    if (!isTapHold) { 
       // 
      } else { 
       $.mobile.silentScroll(0); 
      } 
     } 
    }); 

回答

0

「vmousedown」發出'vmousemove'事件後移動手指。如果你想'vmouseup'觸發,你應該使用preventDefault()方法來阻止vmousemove事件的默認動作。

您可以添加:

$('#element').on('vmousemove', function(e) { 
    e.preventDefault(); 
});