2010-08-20 6 views
0

J'ai ceci:comment inverser e.preventDefault() du corps?

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

&

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

Ce, sur l'iPad, il empêche d'être draggable et ne permet pas que le fond gris ipad a lorsque vous faites glisser une page entière autour de arriver.

J'ai vu sur un autre site Web qu'il est possible d'inverser cela dans un autre div, de sorte que div est à nouveau complètement draggable.

Est-ce que quelqu'un sait comment l'inverser?

J'ai aussi essayé d'utiliser cette option pour éviter (dans le document.ready):

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

& ce pour l'activer:

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

Puis-je mettre ce pour l'activer.

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

Cela ne semble pas fonctionner Y at-il quelque chose de mal avec cela? Ou tout autre moyen qui pourrait fonctionner?

Répondre

0

essayer cet article, HTML with event.preventDefault et effacer ontouchmove de l'étiquette du corps.

mine ressemble à ce

<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> 

permettent alors OnTouchMove sur chaque étiquette que vous voulez. c'est à dire:

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

C'est exactement pourquoi bubbles est légèrement mieux (au moins à mon avis).

bubbles est un navigateur croisé, vous devriez donc pouvoir le remplacer.

e.preventDefault() 

avec

e.bubbles = false; 

puis celui-ci dans votre code, vous pourriez potentiellement réinitialiser bubbles à true.

Si ce qui précède n'est pas une option, ignorez simplement. : D

Une alternative (si vous travaillez juste avec un iPad) est juste d'inverser le fonctionnement du DOM.

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

Cela forcera l'événement à fonctionner dans l'autre direction.

Document click execute 
        | 
        | 
        v 
        Element click execute 
0

j'ai réussi à le résoudre avec

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

Vous pouvez le résoudre en empêchant l'événement que si elle vient du corps:

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