2011-07-26 25 views
0

我試圖實現以下。當用戶將圖標拖動到html頁面中的特定位置並保持約3秒時,它必須自動創建新頁面(如果沒有頁面),否則轉到下一頁(或上一頁)。iPhone的jQuery動作與拖放

這是jQuery可以實現嗎?如果是的話,我怎麼才能意識到呢?

我發現並試圖以下解決方案:

使用雷米夏普mousedrop插件。在這個插件中,我可以使用timerinterval來計算我是否處於特定區域的一段時間。

$(this).mousedown(function(interval)) 
{ 

} 

但不知何故,我沒有得到這個工作與jQuery UI的拖放功能。我已經開發了一些與jQuery UI的代碼,但如果它有用?我真的不知道。

$("#pickUpDiv").draggable({ 
    start: function() { 

    }, 
    drag: function() { 
     var timeOutPointer = -1; 
     var focusElm  = $("#focusCenter"); 
     var leftTopPos  = focusElm.position(); 
     var height   = focusElm.height(); 
     var width   = focusElm.width(); 
     var rightBottomPos = { 
      right: leftTopPos.left + width, 
      bottom: leftTopPos.top + height 
     }; 

     var pos = $(this).position(); 

     if ((pos.left > leftTopPos.left && pos.top > leftTopPos.top) && (pos.left < rightBottomPos.right && pos.top < rightBottomPos.bottom)) { 
      $(document).mousehold(function(timerInterval) { 
       if (timerInterval == 30) { 
        createNewPage(); 
       } else { 

       } 
      }); 
     } 
    }, 
    stop: function() { 

    } 
}); 

這是我的測試設置:

<div id="focusCenter" style="height: 200px; width: 200px; border: 1px solid black;"> 

</div> 

<div id="pickUpDiv" style="height: 100px; width: 100px; background-color: red;"> 
    &nbsp; 
</div> 

我希望有人能幫助我,或者至少指向我朝着正確的方向... :)謝謝你在前進了。

回答

0

你可能需要在綁到touchstarttouchmovetouchend事件

下面是關於移動Safari的治療小鼠的文章/觸摸事件:http://blogs.adobe.com/adobeandjquery/2011/03/07/the-current-state-of-touch-events/

編輯:

決定到編輯我的意見到我的回答:

我做了類似這樣的事情。我所做的是當鼠標進入一個對象時,我向該對象添加了一個類,並設置一個超時,以查看該對象是否在n秒後還有一個類。在mouseout上刪除類並刪除計時器。如果解釋不夠,我會看看是否可以找到示例代碼。我是在樹狀結構中拖放「文件」並在懸停和等待後展開文件夾。

+0

是的我已經看到了,但那不是我的意思:)我想要的東西就像當你拖動一個圖標到網站上的特定區域,你拿着它說讓3秒它必須移動到以前頁面當它存在或創建一個新的頁面:) –

+1

我做了類似這樣的事情。我所做的是當鼠標進入一個對象時,我向該對象添加了一個類,並設置一個超時,以查看該對象是否在n秒後還有一個類。在mouseout上刪除類並刪除計時器。如果解釋不夠,我會看看是否可以找到示例代碼。我是在樹狀結構中拖放「文件」並在懸停和等待後展開文件夾。 –

+0

Awsome!這已經是一個非常好的解釋!這是我需要的方向,謝謝:) –