Ecco un semplice esempio usando la mia risposta alla tua domanda precedente: http://www.jsfiddle.net/yijiang/83W7X/2/embedded/result
var selected = [];
function drawSelection(){
if(selected.length){
selected.sort(function(a, b){
if(a.sourceIndex){
return a.sourceIndex - b.sourceIndex;
} else if(a.compareDocumentPosition){
if(a.compareDocumentPosition(b) == Node.DOCUMENT_POSITION_PRECEDING){
return 1;
} else {
return -1;
}
}
});
var range = rangy.createRange(),
sel = rangy.getSelection();
range.setStart(selected[0].children[0], 0);
range.setEnd(selected[selected.length - 1].children[0], 1);
sel.setSingleRange(range);
}
}
$('ul').selectable({
delay: 100,
selecting: function(event, ui) {
if(ui.selecting.getAttribute('class').indexOf('wrapper') !== -1 && $.inArray(ui.selecting, selected) === -1) {
selected.push(ui.selecting);
drawSelection();
}
},
unselecting: function(event, ui){
if(ui.unselecting.getAttribute('class').indexOf('wrapper') !== -1 && $.inArray(ui.unselecting, selected) > -1){
selected.splice($.inArray(ui.unselecting, selected), 1);
drawSelection();
}
}
});
Si mescola selezionabile di jQuery UI con eccellente biblioteca Rangy di Tim Giù per creare qualcosa di simile a quello che hai chiesto. Credo. Quello che hai chiesto non era esattamente chiaro.
Il codice mantiene una matrice di elementi li
attualmente selezionati. La seconda parte del codice viene aggiunta ai gestori di eventi e alle opzioni pertinenti.La funzione drawSelection
viene chiamata ogni volta che un elemento viene selezionato o deselezionato. La funzione ordina innanzitutto tutti gli elementi in base alla loro posizione nel DOM, quindi procede a disegnare una selezione dal primo selezionato li
all'ultimo.
Il codice, come theazureshadow's, è solo proof-of-concept, poiché sto astrattamente quello che dovrebbe essere il semplice compito di selezionare i li
nella libreria Rangy piuttosto pesante. Inoltre non funziona molto bene e potrebbe fare con alcuni refactoring.
fonte
2010-11-10 14:32:54
significato "invisibile"? è visualizzato none, forecolor = backcolor, visible false? C'è un plugin per il ritaglio di immagini jquery che ti permette di selezionare un'area su un'immagine, ma la parte di testo che dovrai codificare un po '. –