2013-07-02 60 views
1

我有一個div用於觸發事件來擴展我正在構建的移動菜單。這裏是我的代碼至今:touchmove正在觸發時的停止元素

$("#" + obj.mobileButtonID).on({ 
    touchmove: function (e) { 
     var touch = e.originalEvent.targetTouches[0], 
     if (touch.pageX < 0) { 
      e.stopPropagation(); 
     } else if (touch.pageX > 200) { 
      e.stopPropagation(); 
     } 
     $(this).css({ left: touch.pageX }); 
}); 

從本質上講,我試圖做的是在某些地方停止touchmove事件。說出div是否超過了某個pageX的座標或位於其下。我覺得這很接近,但它的運行方式不正確。每次發生事件時,它都會完全忽略我的條件並繼續超出我已佈置的座標。

有什麼建議嗎?

回答

2

您停止條件中的事件傳播,但左側的CSS屬性仍在應用中。如果你的願望是防止這種情況發生,那麼通過從條件返回來退出你的事件處理程序。傳播用於將事件傳播到DOM層次結構中更高的元素。

+0

你的回答實際上引發了我正在尋找的答案。我只是把最後一件事放在'else'語句中,它像夢一樣工作。感謝你!會給你勾號。 – Sethen