【问题标题】:how to reverse e.preventDefault() from the body?如何从正文中反转 e.preventDefault()?
【发布时间】:2010-08-20 19:20:47
【问题描述】:

我有这个:

function dontMove(event) {
    // Prevent page from elastic scrolling
    event.preventDefault();
}

&

<body ontouchmove="dontMove(event);">

这在 ipad 上会阻止它被拖动,并且当您拖动整个页面以显示时,不允许 ipad 具有灰色背景。

我在另一个网站上看到它可以在另一个 div 中反转它,以便 div 再次完全可拖动。

有人知道怎么转吗?

我也尝试过使用它来防止它(在 document.ready 中):

document.ontouchmove = function(e){
    e.preventDefault();
}

& 启用它:

function doTouchMove(state) {
    document.ontouchmove = function(e){
    return state;
    }
}

然后我把这个激活它。

<img ontouchmove="doTouchMove(state);" src="../jpeg/pages/01.jpg" class="touch"/>

这似乎不起作用 这有什么问题吗? 或者任何其他可能有效的方式?

【问题讨论】:

    标签: javascript jquery ipad drag


    【解决方案1】:

    这正是bubbles 稍微好一点的原因(至少在我看来)。

    bubbles是跨浏览器,应该可以替换。

    e.preventDefault()
    

    e.bubbles = false;
    

    然后在您的代码中,您可能会将bubbles 重置为true

    如果以上不是一个选项,那么请忽略。 :D

    另一种选择(如果您只是在使用 iPad)是颠倒 DOM 的工作方式。

    document.addEventListener('click', function(){}, true );
    

    这将迫使事件朝另一个方向工作。

    文档点击执行
                         |
                         |
                         v
                      元素点击执行
    

    【讨论】:

      【解决方案2】:

      试试这个帖子,HTML with event.preventDefault 并从 body 标签中删除 ontouchmove

      我的看起来像这样

      <script>
          // Get touch move enevt from IOS
          document.ontouchmove = function (event) {
              if (!event.elementIsEnabled)
                  event.preventDefault();
          };
      
          // Get touch move enevt from IOS
          function enableOnTouchMove(event) {
            event.elementIsEnabled = true;
          };
      </script>
      

      然后在您想要的每个标签上启用 ontouchmove。即:

      <div ontouchmove="enableOnTouchMove(event)" id="listing">
      

      【讨论】:

        【解决方案3】:

        我设法解决了它

        $('#form1').unbind('submit').submit();
        

        【讨论】:

          【解决方案4】:

          您可以通过阻止来自主体的事件来解决它:

          document.ontouchmove = function(event){
            if(event.target.tagName == "BODY"){
              event.preventDefault();
            }
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-04-29
            • 2017-06-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-09-13
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多