2012-10-10 3 views
8

Il followingcode sparerà allarme per l'evento click per gli elementi con class = a.cssPauseAllOR attributo = historyIDJQuery più selettori "e" operatore

$(document).on("click","a.cssPauseAll,[historyID]", function() { 
    alert($(this)); 

}); 

Come posso utilizzare più selettori utilizzando un operatore AND?

che significa, gli elementi con l'attributo classe historyID?

risposta

8

Basta togliere il , dal selettore:

$(document).on("click","a.cssPauseAll[historyID]", function() { 

historyID non è un attributo valido è possibile utilizzare l'attributo data-* invece:

$(document).on("click","a.cssPauseAll[data-historyid]", function() { 
+4

+1 Per menzionare attributi dei dati. –

+0

Non capisco ... sono dati, solo una convenzione? perché funziona senza di esso – RollRoll

+1

@EdwinSoho Sì, funziona, ma rende il tuo documento non valido, attributi 'dati- *' ti permettono di memorizzare dati personalizzati nel tuo documento http://html5doctor.com/html5-custom-data-attributes/ – undefined

3

gli elementi con la a.cssPauseAll classe AND historyID attributo

Utilizzare il seguente selettore:

a.cssPauseAll[historyID] 

prova da te - http://jsfiddle.net/SrNDt/

Nota: Le virgole selettori separati e quindi si comportano come logica OR. Il concatenamento delle espressioni in un unico selettore si comporta come un valore logico AND.

1

Prova questa

$(document).on("click","a.cssPauseAll[historyID]", function() { 

è sufficiente rimuovere la virgola,