Tôi mới sử dụng Javascript và jQuery. Tôi muốn bấm vào một nút và có một chức năng js thực hiện. (Đối với ví dụ này, nó chỉ là một cảnh báo, nhưng nó thực sự là một chức năng ajax.)
Cảnh báo đầu tiên xuất hiện, nhưng sau khi tôi nhấp vào nút, tôi không bao giờ thấy cảnh báo thứ hai ("đã làm"). Có vẻ như javascript không nghĩ rằng hàm doIt() được định nghĩa khi nút được nhấp.
Dưới đây là các mã có liên quan:
$(document).ready(function()
{
alert('ready');
function doIt() {
alert('did it');
};
}
)
<body>
<input name="Go" type="button" value="Go" onclick="doIt();"/>
</body>
hoặc giữ nó bên trong, nhưng tuyên bố nó như là một chức năng toàn cầu (giữ onclick của bạn) – Konerak
Tôi thực sự làm cả hai, tùy thuộc vào hoàn cảnh. Ví dụ, tôi sử dụng các tệp .ascx với Javascript kèm theo và khi tôi làm như vậy, việc đặt hàm bên trong giới hạn phạm vi của hàm, nhưng lần khác tôi muốn hàm toàn cục mà tôi gọi từ nhiều hàm bao gồm - trong trường hợp đó, Tôi di chuyển hàm bên ngoài phạm vi. Vì vậy, cả hai tùy chọn này đều có sử dụng. –