¿Alguien sabe cómo combinar jQuery UI seleccionable y ordenable? Este script: http://nicolas.rudas.info/jquery/selectables_sortables/ no funciona en Chrome y también tiene modificaciones en el complemento.jQuery UI ordenable y seleccionable
Respuesta
Sólo se encontró una solución muy fácil de thisrdworth:
CSS:
ul { width: 300px; list-style: none; margin: 0; padding: 0; }
li { background: white; position:relative;margin: 1em 0; padding: 1em; border: 2px solid gray; list-style: none; padding-left: 42px; }
li .handle { background: #f8f8f8; position: absolute; left: 0; top: 0; bottom: 0; padding:8px; }
.ui-selecting { background: #eee; }
.ui-selecting .handle { background: #ddd; }
.ui-selected { background: #def; }
.ui-selected .handle { background: #cde; }
HTML:
<ul id="list">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
<li>Item 5</li>
</ul>
Javascript:
$("#list")
.sortable({ handle: ".handle" })
.selectable({ filter: "li", cancel: ".handle" })
.find("li")
.addClass("ui-corner-all")
.prepend("<div class='handle'><span class='ui-icon ui-icon-carat-2-n-s'></span></div>");
Ver: this violín.
Awesome find. Gracias. –
Esto funciona bastante bien.Tuve que pasar estas opciones a selección para que no tratara a los identificadores como objetos seleccionables separados, y no comencé una selección al arrastrarlos: '{filter: 'li', cancel: '.handle'}' – Nick
@Nick: agregó su sugerencia – mhu
Esto es todo lo que puedo dar u :) pero la idea está ahí. no es alllll completa pero espero u puede jugar alrededor con los valores y ver cómo se va de allí :)
Parte de mi jQuery base arsenal incluye lo siguiente, ya que es generalmente molesto cuando se va a arrastrar algo y acabar seleccionando el texto en su lugar ...
// disables text selection on sortable, draggable items
$(".sortable").sortable();
$(".sortable").disableSelection();
No estoy seguro de si sólo se puede dar la vuelta al "desactivar" a "activar", pero no es mi $ .02. Sin embargo, sin intentarlo ... el sentido común sugiere que puede necesitar definir una sección inactiva dentro del mismo elemento de "grupo", para proporcionar un "identificador" para la acción de arrastre ... de lo contrario, esos clics pueden confundirse implacablemente con el intención de seleccionar/editar ...
Pruebe esto. Puede utilizar Ctrl + Click
de selección múltiple y clasificación
Agregue las partes relevantes del código en la respuesta en sí ... –
Si desea seleccionar varios elementos y moverlas todas a otra lista, esta fiddle funciona bien:
HTML:
<meta charset="utf-8" />
<title>jQuery UI Sortable with Selectable</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<body>
<ul id="album" class="connectedSortable">
<li id="li1"><div>1- First</div></li>
<li id="li2"><div>2- Second</div></li>
<li id="li3"><div>3- Third</div></li>
<li id="li4"><div>4- Fourth</div></li>
<li id="li5"><div>5- Fifth</div></li>
<li id="li6"><div>6- Sixth</div></li>
<li id="li7"><div>7- Seventh</div></li>
<li id="li8"><div>8- Eighth</div></li>
</ul>
<ul id="album2" class="connectedSortable">
<li id="li1"><div>1- 1</div></li>
<li id="li2"><div>2- 2</div></li>
<li id="li3"><div>3- 3</div></li>
<li id="li4"><div>4- 4</div></li>
<li id="li5"><div>5- 5</div></li>
<li id="li6"><div>6- 6</div></li>
<li id="li7"><div>7- 7</div></li>
<li id="li8"><div>8- 8</div></li>
</ul>
<div id="anotheralbum" class="connectedSortable">
another album - no style for the lists inside here
</div>
<br style="clear:both">
</body>
Javascript:
<script>
$(function() {
//
$('body').selectable({
filter: 'li'
//filter: '#album2 > li'
});
/*
Since the sortable seems unable to move more than one object at a
time, we'll do this:
The LIs should act only as wrappers for DIVs.
When sorting a LI, move all the DIVs that are children of selected
LIs to inside the sorting LI (this will make them move together);
but before doing that, save inside the DIVs a reference to their
respective original parents, so we can restore them later.
When the user drop the sorting, restore the DIVs to their original
parent LIs and place those LIs right after the just-dropped LI.
Voilá!
Tip: doesn't work so great if you try to stick the LIs inside the LI
*/
$('.connectedSortable').sortable({
connectWith: ".connectedSortable",
delay: 100,
start: function(e, ui) {
var topleft = 0;
// if the current sorting LI is not selected, select
$(ui.item).addClass('ui-selected');
$('.ui-selected div').each(function() {
// save reference to original parent
var originalParent = $(this).parent()[0];
$(this).data('origin', originalParent);
// position each DIV in cascade
$(this).css('position', 'absolute');
$(this).css('top', topleft);
$(this).css('left', topleft);
topleft += 20;
}).appendTo(ui.item); // glue them all inside current sorting LI
},
stop: function(e, ui) {
$(ui.item).children().each(function() {
// restore all the DIVs in the sorting LI to their original parents
var originalParent = $(this).data('origin');
$(this).appendTo(originalParent);
// remove the cascade positioning
$(this).css('position', '');
$(this).css('top', '');
$(this).css('left', '');
});
// put the selected LIs after the just-dropped sorting LI
$('#album .ui-selected').insertAfter(ui.item);
// put the selected LIs after the just-dropped sorting LI
$('#album2 .ui-selected').insertAfter(ui.item);
}
});
//
});
</script>
CSS:
<style>
*,
*:before,
*:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
#album {
list-style: none;
float: left;
width: 20%;
border: 1px solid red;
}
#album2 {
list-style: none;
float: left;
width: 20%;
border: 1px solid red;
}
#album li {
float: left;
margin: 5px;
}
#album2 li {
float: left;
margin: 5px;
}
#album div {
width: 100px;
height: 100px;
border: 1px solid #CCC;
background: #F6F6F6;
}
#album2 div {
width: 100px;
height: 100px;
border: 1px solid #CCC;
background: #F6F6F6;
}
#album .ui-sortable-placeholder {
border: 1px dashed #CCC;
width: 100px;
height: 100px;
background: none;
visibility: visible !important;
}
#album2 .ui-sortable-placeholder {
border: 1px dashed #CCC;
width: 100px;
height: 100px;
background: none;
visibility: visible !important;
}
#album .ui-selecting div,
#album .ui-selected div {
background-color: #3C6;
}
#album2 .ui-selecting div,
#album2 .ui-selected div {
background-color: #3C6;
}
#anotheralbum {
list-style: none;
float: left;
width: 20%;
height: 800px;
border: 1px solid blue;
}
</style>
Esto fue modificado a partir del ejemplo en http://www.pieromori.com.br/snippets/sortable_with_selectable.html gracias a Piero Mori.
- 1. jQuery UI Posición ordenable
- 2. ordenable con texto seleccionable
- 3. Habilitar Shift-Multiselect en jQuery UI seleccionable
- 4. Deshabilitar ctrl-clic en jquery ui seleccionable
- 5. jQuery UI elemento arrastrable caído en ordenable
- 6. jQuery UI ordenable con filas fijas
- 7. Jquery ui ordenable en serie no funciona
- 8. Lista ordenable + anidada con jQuery UI 1.8.2
- 9. JQuery-UI ordenable en el formulario enviar
- 10. jQuery UI manejable de mesa ordenable
- 11. jQuery ordenable y droppable
- 12. Jquery ordenable ('serialize')
- 13. cómo encontrar los elementos seleccionados con Jquery UI seleccionable
- 14. Hacer texto seleccionable en un área de texto dentro de un padre ordenable jQuery
- 15. JQuery Desplazamiento seleccionable y automático
- 16. Programmáticamente 'deseleccionar' un widget seleccionable de jQuery UI
- 17. Cómo implementar funcionalidad de alternar en JQuery UI Seleccionable?
- 18. Cómo evitar la selección múltiple en jQuery UI Complemento seleccionable
- 19. Jquery UI ordenable, el botón no funciona como manejar
- 20. jQuery UI: ordenable ('toArray') devuelve un array vacío
- 21. jQuery comportamiento ordenable inesperado
- 22. instancias TinyMCE en jquery ordenable
- 23. Combinar jQuery ordenable y Drop Event
- 24. jquery ordenable excepto éste
- 25. jQuery + ordenable + en vivo
- 26. jQuery UI ordenable y: cursor del mouse activo para el manejador
- 27. jQuery ordenable obtener .index() antes y después de la clasificación?
- 28. jQuery seleccionable interfaz de usuario y se puede ordenar combinados
- 29. ¿Existe un complemento JQuery que combine Arrastrable y seleccionable
- 30. jQuery ordenable no es una función
Lo he hecho, pero no con ordenable y seleccionable, debido a algunos problemas de derechos de autor no le doy el código :), pero le mostraré instrucciones sobre cómo :) – Val