pero muy simplemente, me gustaría evitar que el evento «touchmove» evento en el elemento de cuerpo pero dejarlo habilitado por otro elemento. Puedo deshabilitar bien… pero no estoy seguro de cómo volver a habilitar en otra parte!

Me imagino que por debajo de la teoría funciona porque return true es el opuesto de preventDefault, pero no funciona para mí. Podría ser la causa de $altNav elemento es en $bod?

JS:

$bod.bind('touchmove', function(event){

    event.preventDefault();
});
$altNav.bind('touchmove', function(event){

    return true;
});
Creo que buscas esto? stackoverflow.com/questions/6339190/…
tipo de tipo de. Yo no soy de la onu-enlace $bod.. solo estoy permitiendo en $altNav. A ver a qué me refiero?

OriginalEl autor technopeasant | 2012-12-21

3 Comentarios

  1. 4

    No estoy seguro de qué lib en realidad estás usando, pero voy a asumir jQuery (también voy a publicar el mismo código en el navegador nativo-js si usted está usando algo que no sea jQ)

    $bod.delegate('*', 'touchstart',function(e)
    {
        if ($(this) !== $altNav)
        {
            e.preventDefault();
            //and /or
            return false;
        }
        //current event target is $altNav, handle accordingly
    });

    Que debe tomar el cuidado de todo. La devolución de llamada aquí ofertas de hoteles con todos touchmove, y se invoca la preventDefault método cada vez que el evento fue disparado en un elemento otros de $altNav.

    Std navegador-js, este código se ve algo como:

    document.body.addEventListener('touchmove',function(e)
    {
        e = e || window.event;
        var target = e.target || e.srcElement;
        //in case $altNav is a class:
        if (!target.className.match(/\baltNav\b/))
        {
            e.returnValue = false;
            e.cancelBubble = true;
            if (e.preventDefault)
            {
                e.preventDefault();
                e.stopPropagation();
            }
            return false;//or return e, doesn't matter
        }
        //target is a reference to an $altNav element here, e is the event object, go mad
    },false);

    Ahora, si $altNav es un elemento con un identificador determinado, basta con sustituir el target.className.match() cosa con target.id === 'altNav' y así sucesivamente…

    Buena suerte, espero que esto ayude

    OriginalEl autor Elias Van Ootegem

  2. 2

    Usar un CSS personalizado de la clase y de la prueba en el alimentador de documentos, por ejemplo:

    <div>
        This div and its parents cannot be scrolled.
        <div class="touch-moveable">
            This div and its children can.
        </div>
    </div>

    a continuación:

    jQuery( document ).on( 'touchmove', function( ev )
    {
        if (!jQuery( ev.target ).parents().hasClass( 'touch-moveable' ))
        {
             ev.preventDefault();
        }
    });

    http://tinyurl.com/mo6vwrq

    OriginalEl autor glycoslave

  3. 1

    puede agregar un argumento,como este

    $bod.bind('touchmove', function(event,enable){
       if(enable){
           event.preventDefault();
       }
    
    });

    OriginalEl autor rachardking

Dejar respuesta

Please enter your comment!
Please enter your name here