2010-02-25 12 views
9

Ho un div che è impostato su overflow: auto;. Questo contenuto di questo div è selezionabile (usando l'interfaccia utente di jQuery).Interfaccia utente JQuery Plugin selezionabile: la barra di scorrimento non è selezionabile quando div overflow

Quando compaiono il div overflow e una barra di scorrimento, la barra di scorrimento diventa selezionabile in modo che lo scorrimento non funzioni correttamente. In FF/Chrome, posso scorrere il div ma ottengo il contorno selezionabile. In Safari, la barra di scorrimento non si impegna affatto poiché il clic viene prelevato dal gestore selezionabile.

Esiste un selettore che è possibile utilizzare per aggiungere la barra di scorrimento all'elenco "Annulla" delle voci? O un altro modo per impedire che la barra di scorrimento sia selezionabile?

Ecco un frammento di codice di come sto configurando il mio selezionabile div:

$(".mySelectable").selectable({ 
    cancel: '.myButton, .notSelectable', 
    filter: '.rowSelectable', 
    selecting: function(event, ui){ 
     handleSelection(ui.selecting); 
    }, 
    selected: function(event, ui) { 
     handleSelected(ui.selected); 
    }, 
    unselected: function(event, ui) { 
     handleUnselected(ui.unselected); 
    } 
}); 

mio HTML assomiglia:

<div class="mySelectable"> <!-- set to auto overflow --> 
    <div class="myButton">I can't be selected</div> 
    <div class="rowSelectable">I am a selectable row</div> 
    ... 
</div> 

Idealmente, sto cercando qualcosa che posso aggiungere a l'opzione 'cancella' che aiuta a saltare la barra di scorrimento.

+0

Questo dipende da quello che hai dentro del 'div' e come stai ricevendo le azioni' focus'. Puoi pubblicare qualche codice e un po 'più di descrizione? –

+0

Codice aggiunto. Cosa intendi con "mettere a fuoco"? – psychotik

risposta

15

D'oh! La soluzione era semplice: aggiungi un altro div e non hai il set di overflow. Così, il codice HTML diventa:

<div class="wrapperDiv"> <!-- set to auto overflow --> 
     <div class="mySelectable"> <!-- NOT set to overflow --> 
      <div class="myButton">I can't be selected</div> 
      <div class="rowSelectable">I am a selectable row</div> 
      ... 
     </div> 
    </div> 
+1

Per chiarire, "non impostato su overflow" significa overflow impostato: visibile; – RobertR

+0

Per chiarire, "non impostato su overflow" significa Non impostare la proprietà di overflow :) e funziona –

+1

La soluzione ha un bug: dopo averlo spostato verso il basso, gli oggetti non sono più selezionabili. – noober

Problemi correlati