2012-11-19 15 views
5

La pagina è qui:Perché non posso attivare l'evento `change` della radio usando jquery?

http://cistrome.org/cps/seqconfig?did=2693

E i codici js originali sono al di sotto (questo funziona bene):

$(document).ready(function(){ 
    $(".open_gene").on('change', function(event) { 
     $('#Gene_field').show(); 
    }); 

    $(".close_gene").on("change", function(event){ 
     $("#Gene_field").hide(); 
    }); 
}); 

Così il .close_gene ha un gestore di eventi per change. Ma quando voglio attivare manualmente questo evento per nascondere il #Gene_field, in questo modo:

>>> $('.close_gene').trigger("change") 

Nel firebugs, il valore restituito è:

[input#nolimit_radio.close_gene all] 

Ma la #Gene_field non è nascosta ..

Mi chiedevo perché non posso attivare l'evento change che dovrebbe già essere bind a function(event){ $("#Gene_field").hide();}. Qualcuno ha idee su questo? Grazie!

+0

Ciao, solo una Cordiale Cordiale che collega t oi siti personali sono scoraggiati in quanto si rompono nel tempo (come questo ha). Vedi [Qualcosa nel mio sito web o progetto non funziona. Posso semplicemente incollare un collegamento ad esso?] (Https://meta.stackoverflow.com/q/254428/1366033). Il codice in linea aiuta molto, ma una demo eseguibile in jsFiddle o frammenti di stack sarebbe meglio. Perché preoccuparsi di tutti 5 anni dopo aver fatto la tua domanda? Perché i futuri lettori come me e 8.711 altri trovano ancora questa domanda quando fanno ricerche e SO non è solo un posto per risolvere i propri problemi, ma anche per costruire un corpo di conoscenze – KyleMit

risposta

8

Prova questo:

$(".close_gene").click(); 

il suo bel lavoro per me in Firebug Console ... :)

Aggiornamento:

Questo dovrebbe anche funzionare, ma non cambierà lo stato di pulsante di scelta

$(document).ready(function(){ 
    $(document).delegate(".open_gene",'change', function(event) { 
    $('#Gene_field').show(); 
    }); 

    $(document).delegate(".close_gene", "change", function(event){ 
    $("#Gene_field").hide(); 
    }); 
}); 

$('.close_gene').trigger("change"); 
+1

Grazie! Funziona. Ma sembra che debba essere usato un evento "change" invece di "click", giusto? Perché '$ (". Close_gene "). Change();' or '$ (". Close_gene "). Trigger (" change ")' non funzionerebbe? –

+0

@Firegun - Stanco di giocare con Firebug ... :( – rajukoyilandy

+0

@Firegun - vedi il mio aggiornamento – rajukoyilandy

Problemi correlati