2013-08-27 19 views
8

Ho una domanda stupida e penso di conoscere già la risposta, ma mi piacerebbe scoprirlo da qualcuno con più conoscenze jQuery di me. Ho un elenco a discesa e vorrei sapere se posso verificare se il ddl è stato cliccato o modificato. EsempioVerifica se l'elemento è stato premuto o modificato

If($('#ddl').click() || $('#ddl').on('change'){ 
    //do something. 
} 
+0

impostato a livello globale flag su false e all'interno di entrambi i gestori di eventi lo impostano su true – Rooster

risposta

13

È possibile associare un click e cambiare gestore di eventi per l'elemento e impostare un flag:

$('#ddl').on('click change', function() { 
    $(this).data('clicked', true); 
}); 

// later 
if ($('#ddl').data('clicked')) { 
    // ... 
} 

Naturalmente, se si desidera eseguire un'azione quando l'elemento viene cliccato o modificato, messo quel codice direttamente nel gestore di eventi. In questo caso non hai bisogno di una bandiera.

+0

+1, 30 secondi più veloce! –

+0

Grazie che ha funzionato proprio come volevo. –

2

Questo fornisce un buon riferimento su come scrivere una funzione per catturare il cambiamento - http://api.jquery.com/change/

$('#ddl').change(function() { 
    // do something 
}); 
+0

Il riferimento ha molti suggerimenti utili. Apprezzalo. –

0

Si può solo fare questo:

$("#Element").click(function() { 
 
    alert('This element has been clicked'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div id="Element"> 
 
    Click me and test if it works 
 
</div>

+0

I dump di codice non danno risposte valide. Dovresti spiegare * come * e * perché * questo risolve il loro problema. Raccomando di leggere "[Come scrivo una buona risposta?"] (Http://stackoverflow.com/help/how-to-answer) –

Problemi correlati