2014-01-15 51 views
0

我在側面板myPanel和某些內容myContent上有鏈接myLink。我想:在jQueryMobile中傳播touchmove事件從面板到內容

  1. 觸摸myLinkmyPanel,不要鬆開觸摸
  2. myPanel關閉
  3. touchmove事件偵聽器添加到myContent(當前觸摸尚未結束)
  4. myContent處理當前觸摸touchmove它剛剛開始收聽

我在做1 3這樣的:

$('#myLink').touchstart(function() { 
    $('#myPanel').panel('close'); 
    // addEventListener for touchmove somewhere else 
}); 

我已經嘗試過,並添加監聽器,並沒有什麼後觸發touchstarttouchmovetouchend事件。

我在myContent的不同時間對touchmove有不同的迴應,所以我只想在myLink被觸動後才添加這個特定的聽衆。

我不確定這是否重複,我一直在尋找一段時間,但我想我對術語不夠熟悉。

+0

,而不是添加:

$('#myLink').bind('touchstart',function() { $('#myPanel').panel('close'); event.stopPropagation(); // Don't addEventListener for touchmove }); $('#myLink').bind('touchmove',function(event) { event.stopPropagation(); // directly call what my previous listener was calling: external.onTouchMove(event); }); 

處理外的事件時,訣竅是使用originalEvent並移除可以創建「標記對象」(f = {panel:false,link:true})的事件並檢查單個移動事件中的這些標記。 – rafaelcastrocouto

+0

如果剛剛使用標誌在面板中開始觸摸,我可以在內容中讀取「touchmove」的座標嗎? – chapulina

+0

你會正常閱讀它們...只需使用touchmove的一個事件並在事件函數內部進行任何可能需要的測試(使用事件參數,我建議使用switch語句。 – rafaelcastrocouto

回答

0

我想通了。而不是增加聽衆的touchmove別的地方,我結合touchmovemyLink並直接調用什麼被稱爲外:

external.prototype.onTouchMove = function(e) 
{ 
    var event = e.originalEvent; 
    event.preventDefault(); 

    // Do what must be done 
};