¿Cómo se desactiva un jQuery que pueden arrastrarse, por ejemplo, durante una devolución de datos de UpdatePanel?¿Cómo se desactiva un jquery-ui pueden arrastrarse?
Respuesta
podría crear un DisableDrag (myObject) y una función EnableDrag (myObject)
myObject.draggable('disable')
Entonces
myObject.draggable('enable')
Me tomó un poco de tiempo para averiguar cómo desactivar pueda arrastrar en la caída de usar ui.draggable
para hacer referencia al objeto que está siendo arrastrado desde el interior de la función de caída:
$("#drop-target").droppable({
drop: function(event, ui) {
ui.draggable.draggable("disable", 1); // *not* ui.draggable("disable", 1);
…
}
});
HTH alguien
Gracias por esto. Esta solución parece funcionar bien cuando se usan directivas arrastrables/desplegables en AngularJS. –
Para desactivar temporalmente el uso que pueden arrastrarse comportamiento:
$('#item-id').draggable("disable")
Para retirar el comportamiento que pueden arrastrarse utilizar de forma permanente:
$('#item-id').draggable("destroy")
Descubrí que 'disable' tiene un efecto secundario relacionado con css, pero destroy funciona sin problemas. –
Quizás podría señalar ese efecto secundario también. –
@jedanput el efecto secundario de usar deshabilitar es que los elementos que se pueden arrastrar tienen una apariencia gris. destruir parece dejar la apariencia solo. – samazi
parece que nadie miraba a la documentación original. Puede ser que no había en ese momento))
inicializar una arrastrable con la opción desactivada especificado.
$(".selector").draggable({ disabled: true });
Obtiene o establece la opción deshabilitada, después de iniciar.
//getter
var disabled = $(".selector").draggable("option", "disabled");
//setter
$(".selector").draggable("option", "disabled", true);
Esto funciona, pero tiene un efecto secundario de hacer que mi div tenga aproximadamente el 50% de opacidad ... No tengo idea de por qué. –
@ScottBeeson Cada vez que deshabilita algo en jQuery, agrega la clase "ui-state-disabled". Puede eliminarlo con: $ (".ui-draggable"). RemoveClass ("ui-state-disabled") – Calciphus
En el caso de un cuadro de diálogo, tiene una propiedad llamada "arrastrable", configúrelo como falso.
$("#yourDialog").dialog({
draggable: false
});
Aunque la pregunta es antigua, probé la solución propuesta y no funcionó para el diálogo. Espero que esto ayude a otros como yo.
No estoy seguro de si la pregunta está relacionada específicamente con jQueryUI * Dialogs *, pero encontré su publicación útil, sin embargo. –
Para activar/desactivar arrastrable en jQuery utilicé:
$("#draggable").draggable({ disabled: true });
$("#draggable").draggable({ disabled: false });
@Calciphus respuesta no funcionó para mí con el problema de la opacidad, así que utilicé:
div.ui-state-disabled.ui-draggable-disabled {opacity: 1;}
trabajado en dispositivos móviles ya sea.
Aquí está el código: http://jsfiddle.net/nn5aL/1/
Su JSfiddle no parece estar funcionando. Los botones no hacen clic (usando el último Chrome). Traté de actualizarlo a enlaces y llamar 'button()' pero eso no ayudó. – ashes999
@ ashes999, tengo el último Chrome (30.0.1599.101) y aún funciona ... – CarinaPilar
de todas las soluciones dadas, esta fue la única que funcionó 100% para mí, todas las demás (usando combinaciones de desactivar/destruir etc.) simplemente no corrigió el problema css. En mi aplicación, usando la función arrastrar y soltar, encontré que la opacidad era diferente para los elementos que se habían arrastrado desde la inicialización en comparación con los que no se habían tocado. Todo muy desordenado. Gracias a @CarinaPilar tanto por la solución como por jsfiddle para demostrarlo. –
Lo siguiente es lo que esto se vería como en el interior de .draggable({});
$("#yourDraggable").draggable({
revert: "invalid" ,
start: function(){
$(this).css("opacity",0.3);
},
stop: function(){
$(this).draggable('disable')
},
opacity: 0.7,
helper: function() {
$copy = $(this).clone();
$copy.css({
"list-style":"none",
"width":$(this).outerWidth()
});
return $copy;
},
appendTo: 'body',
scroll: false
});
Cambio draggable
atributo de
<span draggable="true">Label</span>
a
<span draggable="false">Label</span>
tengo una solución simple y elegante que no pierde el tiempo con las clases, estilos, opacidades y esas cosas.
Para el elemento arrastrable: agregue el evento 'inicio' que se ejecutará cada vez que intente mover el elemento a alguna parte. Tendrás una condición que mover no es legal. Para los movimientos que son ilegales, evítelos con 'e.preventDefault();' como en el código de abajo
$(".disc").draggable({
revert: "invalid",
cursor: "move",
start: function(e, ui){
console.log("element is moving");
if(SOME_CONDITION_FOR_ILLEGAL_MOVE){
console.log("illegal move");
//This will prevent moving the element from it's position
e.preventDefault();
}
}
});
que son bienvenidos :)
- 1. Cómo desencadenar un comportamiento que pueden arrastrarse mediante programación
- 2. JTree hacen sólo deja que pueden arrastrarse
- 3. cuadro escalables, que pueden arrastrarse en las parcelas que se pueden seleccionar datos
- 4. ¿Cómo se desactiva CalendarView en un DatePicker?
- 5. jQuery UI que pueden arrastrarse, arrastre div padre
- 6. jQuery que pueden arrastrarse/lanzables: el acceso a elementos originales
- 7. Cómo decidir si aceptar o rechazar una jQuery que pueden arrastrarse en un lanzables
- 8. cómo agregar los marcadores que pueden arrastrarse a un mapa de Google usando jQuery
- 9. ¿Cómo se desactiva un complemento específico en Vim?
- 10. jQuery que pueden arrastrarse + lanzables - Mueva físicamente elemento arrastrado en un recipiente caído
- 11. jQueryUI: eliminar correctamente un elemento que se puede arrastrar
- 12. Cómo desactivo un botón de jqueryui
- 13. Deshabilitar un jqueryui datepicker
- 14. jQueryUI - excepción no detectada: no se pueden llamar a los métodos
- 15. MemoryStream desactiva la lectura cuando se devuelve
- 16. jQuery UI eje restricción que pueden arrastrarse ina x y coordenadas dadas
- 17. ¿Cuándo se desactiva un objeto de alcance transitorio en Ninject?
- 18. jQuery Safari/Chrome incompatibilidad con la propiedad de contención que pueden arrastrarse
- 19. ¿Cómo se desactiva una aceleración de hardware en wpf?
- 20. ¿Cómo se desactiva la restricción de clave primaria mediante programación?
- 21. ¿Cómo se desactiva ReSharper para una solución VS.net?
- 22. UILongPressGestureRecognizer desactiva UIButton Highlighting
- 23. ASP.NET System.Web.Optimization: Agrupando jQueryUI CSS
- 24. cómo revertir la posición de una interfaz de usuario jQuery que pueden arrastrarse en función del estado
- 25. JQuery/JQueryUI divisor horticultor
- 26. JQueryUI Diálogo Tamaño
- 27. jQueryUI diálogo Cuestiones TinyMCE
- 28. JQueryUI Dialog display issue
- 29. Diseñar el jQueryUI DatePicker
- 30. Crear un menú jQueryUI 1.8 Button
Esto funciona. Los documentos completos para draggable() son [aquí] (http://jqueryui.com/demos/draggable/#options). Lo mismo ocurre con los objetos ordenables() (si está permitiendo el reordenamiento de arrastrar y soltar). – nickb
Lo que quiere decir que [los documentos arrastrables() son (¿ahora?) Aquí] (http://api.jqueryui.com/draggable /), con el enlace de nickb, arriba, yendo [a la demostración] (http://jqueryui.com/draggable/). ;) – ruffin
Esto me da "no se puede llamar a los métodos que se pueden arrastrar antes de la inicialización; intenté llamar al método 'deshabilitar'" –