2013-06-18 9 views
7

Ho una domanda con IU Fisarmonica jQuery e Droppable. Come posso trascinare un elemento da # tab-1 a # tab-2? devo vedere la demo in jqueryui.com "ordinabili - Collegare liste con schede", ma non può usare questo per Fisarmonica :(Utilizzo dell'interfaccia utente jQuery "Accordion and Droppable"

HTML:

<div id="tabs"> 
<div id="tabs-1"> 
    <h3>A</h3> 
    <div> 
    <ul id="sortable1" class="connectedSortable ui-helper-reset"> 
     <li class="ui-state-default">Item 1</li> 
     <li class="ui-state-default">Item 2</li> 
     <li class="ui-state-default">Item 3</li> 
     <li class="ui-state-default">Item 4</li> 
     <li class="ui-state-default">Item 5</li> 
    </ul> 
    </div> 
</div> 
<div id="tabs-2"> 
    <h3>B</h3> 
    <div> 
    <ul id="sortable2" class="connectedSortable ui-helper-reset"> 
     <li class="ui-state-highlight">Item 1</li> 
     <li class="ui-state-highlight">Item 2</li> 
     <li class="ui-state-highlight">Item 3</li> 
     <li class="ui-state-highlight">Item 4</li> 
     <li class="ui-state-highlight">Item 5</li> 
    </ul> 
    </div> 
</div> 

Script:

$(function() { 
    $("#sortable1, #sortable2").sortable().disableSelection(); 

    var $tabs = $("#tabs").accordion({ 
     heightStyle: "content", 
     collapsible: true, 
     header: "> div > h3", 
     beforeActivate: function(event, ui) { 
      $("#maps").width($("#tabsMap").innerWidth() - $("#mapList").width() - 34); 
     }, 
     activate: function(event, ui) { 
      $("#maps").width($("#tabsMap").innerWidth() - $("#mapList").width() - 32); 
     } 
    }).sortable({ 
     axis: "y", 
     handle: "h3", 
     stop: function(event, ui) { 
      ui.item.children("h3").triggerHandler("focusout"); 
     } 
    }); 
}); 
+0

Perché non riesci a utilizzare il plug-in dell'interfaccia utente jQuery? – rednaw

risposta

2

È possibile collegare le liste cambiando la riga:

$("#sortable1, #sortable2").sortable().disableSelection(); 

A:

$("#sortable1, #sortable2").sortable({connectWith['.connectedSortable']}).disableSelection(); 

ma poi hai il problema come raggiungere l'altra aperta a rilasciarlo nell'altra lista.

Se si aggiunge event: "mouseover" come opzione accordian, non attiverà il mouseover mentre si sta ancora trascinando.

Per raggiungere più pannelli aperti contemporaneamente, è necessario una soluzione piuttosto sgradevole, ma hey, funziona !:

http://jsfiddle.net/ZjvWN/2/

di credito per la funzione beforeActivate al membro Boaz da questa risposta: jQuery UI accordion: open multiple panels at once

Problemi correlati