2013-03-21 8 views
8

Scusa, domanda davvero stupida qui. Se pubblichi una domanda su javascript o jquery, le persone spesso dicono: crea un jsfiddle.testare una funzione in jsfiddle

Così, l'ho fatto. La mia domanda riguarderà il far scorrere le div in jquery, ma non riesco nemmeno a far funzionare una javascript di base in jsfiddle.

http://jsfiddle.net/ubq6E/

<div onclick="showit()">Hello</div> 
function showit() 
{ 
alert('hi'); 
} 

Un div, fare clic su di esso per chiamare una funzione javascript, ma jsfiddle dice la funzione non è definito. Non puoi farlo in jsfiddle?

+2

Sì, cambiamento in cui il JS è incluso: http://jsfiddle.net/ubq6E/1/ –

+2

Vedere la seconda casella di selezione a sinistra lato della mano, in alto? Anche il controllo dell'origine del frame dei risultati potrebbe fornire alcuni spunti. E 'possibile trovare maggiori informazioni nella documentazione: http://doc.jsfiddle.net/basic/introduction.html#fiddle-settings-sidebar. –

+0

Grazie a tutti e due - pensavo che fosse ora che rinunciassi a questa allodola. –

risposta

8

Hai selezionato l'opzione predefinita onLoad in jsfiddle.

In questo modo il sito racchiude l'intero codice all'interno di una funzione di callback, ovvero la funzione showit non è una funzione globale richiesta dai gestori di eventi in linea DOM0.

Ci sono diversi arounds di lavoro, nel mio ordine personale di preferenza:

  1. non utilizzare Dom0 gestori di linea, sono davvero vecchia scuola - guardare in element.addEventListener() invece e separare i markup da il tuo JS.

  2. uso window.showit = function() { ... } invece per forzare la funzione di apparire nello spazio dei nomi globale.

  3. selezionare una delle opzioni "senza Wrap"

+0

Sì! Fai clic sul pulsante Javascript nella finestra di JavaScript e scegli Nessun capo a capo. –