jquery可以在ipad上播放直播活动

时间:2012-03-02 02:55:18

标签: javascript jquery javascript-events

我正在尝试拖动从ajax返回的实时div。以下代码适用于桌面,但在ipad上,我必须拖动(在页面加载)每个拖动两次,一次初始化然后拖动。甚至在页面加载时使这个拖动有任何帮助?我的代码如下:

HTML:

<div class="draggable"> drag this </div>

jquery的:

$.fn.liveDraggable = function (opts) 
    { 

        if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i))) 
        {
              this.live("touchstart", function() {
                 if (!$(this).data("init")) {
                    $(this).data("init", true).draggable(opts);
                 }
              });
              return $();
        }
        else
        {
             this.live("mouseover", function() {
                 if (!$(this).data("init")) {
                    $(this).data("init", true).draggable(opts);
                 }
              });

              return $();
        }

    };



    $(".draggable").liveDraggable(
    {  
        helper: 'clone',            
        containment: '#origin'

    })

1 个答案:

答案 0 :(得分:1)

您无法绑定鼠标悬停事件,并希望它们在触控设备上具有1对1的关系。简单地说,我有同样的问题,除了不使用实时模型之外没有找到解决方案,因为每次添加一个新的dom元素以继承这些属性时,你必须重新初始化所有内容。

旁注。

尝试以下方法以确定您是否已将实时事件附加到该元素。

if (!$(this).data("draggable")) {
   $(this).draggable(opts);
}

基本上你无需添加像

这样的随机数据()属性
'.data("init", true)' 

上面的内容可以防止名称空间因你不需要的东西而混乱,因为一旦附加了可拖动的东西总是正确的,可以很容易地删除可拖动的方法。