2013-03-21 42 views
8

Xin lỗi, câu hỏi thực sự ngu ngốc ở đây. Nếu bạn đăng câu hỏi về javascript hoặc jquery, mọi người thường nói - tạo jsfiddle.kiểm tra chức năng trong jsfiddle

Vì vậy, tôi đã làm. Câu hỏi của tôi sẽ được về việc divs để trượt lên bằng cách sử dụng jquery nhưng, tôi thậm chí không thể có được một chức năng javascript cơ bản để chạy trong jsfiddle.

http://jsfiddle.net/ubq6E/

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

Một div, click vào nó để gọi một hàm javascript, nhưng jsfiddle nói chức năng không được định nghĩa. Bạn không thể làm điều này trong jsfiddle?

+2

Có, thay đổi nơi JS được bao gồm: http://jsfiddle.net/ubq6E/1/ –

+2

Xem hộp chọn thứ hai bên trái bên tay, ở trên cùng? Ngoài ra, kiểm tra nguồn của khung kết quả có thể cung cấp một số thông tin chi tiết. Bạn có thể tìm thêm thông tin trong tài liệu: http://doc.jsfiddle.net/basic/introduction.html#fiddle-settings-sidebar. –

+0

Cảm ơn cả hai - nghĩ rằng đó là khoảng thời gian tôi đã từ bỏ lark này. –

Trả lời

8

Bạn đã chọn tùy chọn mặc định onLoad trong jsfiddle.

Điều này làm cho trang web bao bọc toàn bộ mã của bạn trong hàm gọi lại, có nghĩa là hàm showit của bạn không phải là hàm toàn cầu theo yêu cầu của trình xử lý sự kiện nội tuyến DOM0.

Có một số quanh công việc, để cá nhân của tôi về sở thích:

  1. không sử dụng bộ xử lý inline dom0, họ đang thực sự trường cũ - nhìn vào element.addEventListener() thay vào đó và tách đánh dấu của bạn từ JS của bạn.

  2. sử dụng window.showit = function() { ... } thay vào đó để buộc chức năng của bạn xuất hiện trong không gian tên chung.

  3. chọn một trong các tùy chọn "không bọc"

+0

Yep! Nhấn vào nút Javascript trong cửa sổ javascript và chọn No Wrap - in Head. –

Các vấn đề liên quan