Domanda

Sto lavorando su un progetto in cui posso generare i documenti di Word, una delle funzionalità è quello di definire una tabella di contenuti. Voglio che la mia TOC ad essere una lista di jQuery ordinabile per l'ordinamento dei capitoli.

Sono retreving i dati recursivly da una tabella di MySQL, che funziona come previsto. Da quando ho trovato ci sono alcuni strani comportamenti in IE7 (ed eventuali altre versioni) sono passato di nuovo alle origini e provato quanto segue in un semplice file HTML senza alcuna struttura di DB-generated.

<!doctype html>
<html>
<head>
<script type="text/javascript" src="./jquery-1.3.2.js"></script>
<script type="text/javascript" src="./ui/jquery-ui-1.7.2.custom.min.js"></script>
<script type="text/javascript">
  $(function() {
    $("ul.list").sortable({
      opacity: 0.7,
      helper: 'clone',
      cursor: 'move',
      tolerance: 'pointer'
    });
  $("ul.list").selectable();
  $("ul.list").disableSelection();
});
</script>
<style type="text/css">
ul.list {
  list-style:none;
  padding:none;
  margin:none;
  border:1px solid #EFEFEF;}
ul.list:hover {
  border:1px dotted #333;}
</style>
</head>
<body>
  <ul class="list">
    <li>Chapter 1</li>
    <li>Chapter 2
      <ul class="list">
        <li>Chapter 2.1</li>
        <li>Chapter 2.2</li>
      </ul>
    </li>
  </ul>
</body>
</html>

Con questa fonte (non importa la quantità di sottolivelli) Mi aspetto che ogni sottocapitolo di essere un elenco ordinabile unico nel suo capitolo genitore. In FireFox questo funziona come dovrebbe, ma purtroppo al lavoro IE7 è il browser predefinito e nessun interruttore può essere fatto.

Qualcuno ha qualche suggerimento che cosa fare?

Fondamentalmente voglio solo di riorganizzare gli elenchi e liste nidificate. In questo momento io sono in grado di trascinare i arround mainchapters, quando provo a trascinare un sottocapitolo l'intero elenco-struttura dal genitore corrispondente è sempre trascinato solo. Così, quando si tenta di trascinare 'il capitolo 2.2' per posizionarlo sopra 'il capitolo 2.1' In realtà sto trascinando 'Capitolo 2', con la sola si accettano per trascinarla sopra 'Capitolo 1'.

Spero che la mia domanda è abbastanza chiaro.

Ecco una demo. aggiungere /edit all'URL per vedere il codice e giocare con lui

È stato utile?

Soluzione

Basta aggiungere questo

$('ul.list').bind('mousedown', function(e) {
  e.stopPropagation();
});

Questo fermerà IE dalla zampillante l'evento mousedown al ul genitore, che fa sì che il comportamento ordinabile strana che avete visto. Ora dovrebbe funzionare come previsto

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top