2013-03-21 14 views
8

Przepraszam, naprawdę głupie pytanie tutaj. Jeśli piszesz pytanie o javascript lub jquery, ludzie często mówią - stwórz jsfiddle.testowanie funkcji w jsfiddle

Tak, zrobiłem. Moje pytanie dotyczy pobierania elementów div za pomocą jquery, ale nie mogę nawet uzyskać podstawowej funkcji javascript do uruchomienia w jsfiddle.

http://jsfiddle.net/ubq6E/

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

div, kliknij na niego, aby wywołać funkcję JavaScript, ale jsfiddle mówi, że funkcja nie jest zdefiniowana. Nie możesz tego zrobić w jsfiddle?

+2

Tak, zmiana gdzie JS jest wliczone: http://jsfiddle.net/ubq6E/1/ –

+2

Zobacz drugą wybierz pole po lewej stronie ręka, na górze? Również sprawdzenie źródła ramki wyników może dać pewne spostrzeżenia. Więcej informacji można znaleźć w dokumentacji: http://doc.jsfiddle.net/basic/introduction.html#fiddle-settings-sidebar. –

+0

Dziękuję wam obojgu - myśleliśmy, że najwyższy czas, że zrezygnowałem z tego skowronka. –

Odpowiedz

8

Wybrałeś domyślną opcję onLoad w jsfiddle.

Powoduje to, że witryna zawija cały kod w funkcji wywołania zwrotnego, co oznacza, że ​​funkcja showit nie jest funkcją globalną wymaganą przez wbudowane procedury obsługi zdarzeń DOM0.

Istnieje kilka arounds pracy, w moim osobistym kolejności preferencji:

  1. nie używać dom0 teleskopowe inline, oni naprawdę old school - zamiast patrzeć w element.addEventListener() i oddzielić od znaczników twój JS.

  2. użyj zamiast tego window.showit = function() { ... }, aby wymusić pojawienie się funkcji w globalnej przestrzeni nazw.

  3. wybierz jedną z opcji „no wrap”

+0

Tak! Kliknij przycisk Javascript w oknie javascript i wybierz opcję Bez zawijania - w głowie. –

Powiązane problemy