Tôi khá mới đối với JS, nhưng tôi đã lập trình bằng C trước đây và tôi đang cố gắng thu hút sự chú ý của toàn bộ sự kiện. Tôi đang cố gắng để tạo ra một kịch bản mà sẽ xác nhận đầu vào hình thức, tuy nhiên tất cả các mã của tôi đang được chạy - tất cả mọi thứ bên trong nếu/người khác, vòng, những gì có bạn - bất kể sự kiện xảy ra hay không. Để kiểm tra, và để làm cho nó dễ dàng hơn để đăng ở đây, tôi đã viết một chương trình đơn giản mà có vấn đề này quá.Javascript: Các hàm được gọi trên tải trang thay vì onclick/onsubmit
HTML:
<button id="test">Test</button>
Javascript:
function init(){
document.getElementById("test").onclick = alert("hello");
}
window.onload = init;
Từ những gì tôi hiểu, hàm init nên được gọi khi tải trang (window.onload), và cảnh báo sẽ bật lên khi nút có ID "test" được nhấp (onclick). Điều thực sự xảy ra là cảnh báo sẽ xuất hiện ngay sau khi trang tải và sẽ xuất hiện trở lại nếu tôi nhấn nút.
Suy nghĩ của tôi là tôi đã đưa ra một số giả định không chính xác về thứ tự mà JS được thực hiện, nhưng tôi không thể nghĩ đó là cái gì. Có ai có thể làm sáng tỏ điều này không?
Nói cách khác: 'x = alert()' có nghĩa là: 'x' là giá trị trả về của' alert() 'statment. Và giá trị trả về là gì? Hãy thực hiện nó để tìm hiểu - và đó là nơi thực hiện xảy ra! – Xufox
Cảm ơn bạn đã trả lời! Điều đó có ý nghĩa, thực sự. Nhưng làm thế nào tôi có thể chuyển một biến được sử dụng bởi hàm được kích hoạt mà tôi cũng muốn sử dụng trong hàm cha? Hoặc tôi chỉ đơn giản là sẽ sử dụng một biến toàn cầu? –
Bạn sẽ phải quấn chức năng gọi chính nó vào một hàm, một cái gì đó như: 'onclick = function() {myFunction (myVariable); }; 'sẽ có cùng phạm vi – mattytommo