2012-10-23 12 views
15

Eventuali duplicati:
jQuery mouseover a disabled link, how do I change the cursor so it doesn’t appear clickable?Prevenire cursore Cambia per mano sul pulsante disattivato

Ho un bottone che sto cercando di disabilitare in alcuni casi in cui la sua funzione è inutile o impossibile . È uno dei tanti pulsanti sulla pagina e voglio solo disabilitare questo pulsante specifico.

L'effetto che sto cercando è di averlo visualizzato in grigio, non selezionabile e che il puntatore del mouse non cambia al puntatore a mano quando si passa il mouse sopra il pulsante.

Sono riuscito con successo ai primi 2 obiettivi, ma non sono sicuro di come far accadere il terzo. Quando ho cercato ho visto suggerimenti per disabilitare globalmente questo comportamento, ma non per un pulsante specifico.

Ecco quello che ho finora.

if(buttonIsDisabled) 
{ 
    var btnid ="#button"+index; 
    $(btnid).attr("disabled","disabled").fadeTo(500,0.2); 
} 

questo rende con successo il pulsante cliccabile e sfuma fuori, ma in Firefox e Chrome mostra ancora un'icona della mano quando si passa. IE8 (che devo anche supportare) disattiva correttamente la mano e mostra il cursore.

Qualche suggerimento su come far rispettare il comportamento di IE in Chrome e Firefox?

+1

Hai provato styling con CSS, ad es 'Cursore: default'? – j08691

+0

@ j08691 A volte voglio solo farlo dinamicamente, ma la soluzione di jQuery .css ha un senso. –

+0

@Diodeus buon punto, ho fatto qualche ricerca ma stavo cercando cose specifiche del pulsante e non ho visto il post "link disabilitato". –

risposta

25

È possibile impostare la regola "cursore" su un valore di "predefinito". In jQuery, puoi utilizzare il metodo css.

$(btnid).css("cursor", "default"); 

Dal momento che già sta utilizzando $ (btnid), si può semplicemente concatenare le chiamate, in questo modo:

$(btnid).attr("disabled","disabled").css("cursor", "default").fadeTo(500,0.2); 
+0

esattamente quello che volevo, grazie! –

+0

Anche questo dovrebbe funzionare .css ("cursor", "pointer! Important"); ? Usare! Importante per ignorare qualcosa? –

+0

@KalaJ - sì, dovrebbe funzionare, ma l'unica ragione per cui dovresti farlo è se stai tentando di ignorare un override. La funzione css in jQuery imposta i campi sulla proprietà style dell'elemento dom corrispondente. Questo dovrebbe avere la massima specificità per impostazione predefinita, quindi non è necessario! Importante, a meno che anche una regola con specificità inferiore non stia usando! Importante. Se tutto ciò suona come un mumbo-jumbo, una buona regola empirica è di usare! Importante con parsimonia. Vedi http://css-tricks.com/specifics-on-css-specificity/ e http://css-tricks.com/when-using-important-is-the-right-choice/ –

4

È anche possibile impostare uno stile di cursor: default sul pulsante.

4

È possibile impostare i CSS in questo modo:

$(btnid) 
    .attr("disabled","disabled") 
    .css('cursor','default') 
    .fadeTo(500,0.2); 
Problemi correlati