Creo que la solución a esto es mirándome a la cara, pero me parece que no puede encontrar.

Así, estoy haciendo un sitio que tiene una pequeña carga de archivo de la sección. La sección de cargar tendrá un lugar para subir una imagen para diferentes dispositivos y orientaciones de dispositivo (es decir, iPhone, iPad, retrato y paisaje). Me puede fácilmente averiguar cómo implementar el drag & drop en el individuo los iconos de los dispositivos, pero si el usuario pierde el área de colocación, el navegador solo tiene que acceder a la imagen en su sistema. ¿Cómo puedo desactivar la función drag & drop si no hay un archivo de tipo de entrada para recibir el archivo arrastrado?

  • escuchar drag&drop eventos en toda la página, rechazar y evitar la cesación de pagos?

4 Comentarios

  1. 11

    Este documento (documentación de jQuery file upload plugin) muestra cómo deshabilitar la acción predeterminada del explorador:
    https://github.com/blueimp/jQuery-File-Upload/wiki/Drop-zone-effects

    Citar el documento:

    Si quieres que permita a determinadas zonas de caída, pero deshabilitar el navegador predeterminado de acción para los archivos de gotas en el documento, agregue el siguiente código JavaScript:

    $(document).bind('drop dragover', function (e) {
         e.preventDefault();
    });

    Tenga en cuenta que la prevención de la acción predeterminada para el «drop» y «dragover» eventos es necesario desactivar el navegador predeterminado acción de colocar.

    • Gracias por la info, yo no uso jQuery, pero esto me ayudó a descubrirlo. Pensé que no era «caída» fue un evento, o lo que el evento iba a ser llamado.
    • gracias por la info. por qué dragover también es necesaria? yo estaba usando drop solo evento y no estaba funcionando.
    • Ni idea, lo siento. «No trabajo» significa que el navegador navegar lejos de todos modos, o sólo que el cursor del ratón indica una caída de destino? El último sentido que el navegador no conoce de antemano el evento drop será prevenido.
    • Esto no funciona en absoluto para mí. He encontrado la solución en la documentación pero simplemente no hacer nada. Todavía puedo arrastrar/soltar en cualquier lugar de la página y de los intentos de cargar.
    • usted necesita para devolver false como se indica a continuación
  2. 1

    Esto puede no ser relevante para el tema, pero es justo a la inversa. Si usted no desea arrastrar y soltar el archivo en el archivo de entrada de hasta-cargador, puede utilizar

    $('body').on('drop', function (e) {
         return false;
    });

    Que trabajó para mí en ambos, es decir, 11 y google chrome. Gracias Francisco por tu pautas similares

    • No sé por qué te gustaría desactivar una característica esperada por el usuario…
    • se hace difícil si usted tiene varias zonas de caída, así que puede que desee desactivar a veces
  3. 0

    la dropzone debe estar dentro de la forma sin ningún tipo de elementos HTML:

    <form id="frmdropzone" class="dropzone" action="Save" method="post" enctype="multipart/form-data">
           <div class="dropzone-previews"></div>
    </form>
    • <form id=»frmdropzone» class=»dropzone» action=»Guardar» method=»post» enctype=»multipart/form-data»> <div class=»dropzone-vistas previas»></div> </form>
  4. -1

    Para mejorar en enero la respuesta, si usted no desea deshabilitar la función drag & drop en el archivo de entrada de elementos:

    $(document).bind("drop dragover", function(e){
        if(e.target.type != "file"){
            e.preventDefault();
        }
    });
    • Chrome informes que e.target.type es indefinido

Dejar respuesta

Please enter your comment!
Please enter your name here