4
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi đang cố gắng gọi một hàm trong trang HTML từ tệp index.js
được tải bên ngoài, nhưng tôi luôn nhận được
Uncaught ReferenceError: displayy is not defined
Bên trong trang HTML của tôi:
$[ document ].ready[function[] {
displayy[];
}];
Tệp index.js
:
$[ document ].ready[function[] {
alert['loaded'];
function displayy[] {
alert['executed'];
}
}];
Tôi cũng đã thử:
window.onload = function[] {
displayy[];
};
document.addEventListener["DOMContentLoaded", function[event] {
displayy[];
}];
Đã hỏi ngày 23 tháng 3 năm 2017 lúc 20:29Mar 23, 2017 at 20:29
Bogdan Danielbogdan DanielBogdan Daniel
2.55910 Huy hiệu vàng39 Huy hiệu bạc73 Huy hiệu đồng10 gold badges39 silver badges73 bronze badges
9
Bạn không cần phải chạy lại
$[ document ].ready[function[] {
displayy[];
}];
1 từ tập lệnh. Các tác phẩm sau:$[document].ready[function[] {
alert['loaded'];
displayy[];
function displayy[] {
alert['executed'];
}
}];
Đã trả lời ngày 23 tháng 3 năm 2017 lúc 20:41Mar 23, 2017 at 20:41
Pritam Banerjeepritam BanerjeePritam Banerjee
17.1k10 Huy hiệu vàng84 Huy hiệu bạc103 Huy hiệu đồng10 gold badges84 silver badges103 bronze badges
3
Bên trong index.js của bạn, bạn có thể gọi chức năng của mình bằng đối tượng
$[ document ].ready[function[] {
displayy[];
}];
2.window.displayy = function[]{
return "hello!"
}
Và sau đó bạn gọi nó là
$[ document ].ready[function[] {
displayy[];
}];
3 hoặc
$[ document ].ready[function[] {
displayy[];
}];
4Một giải pháp tốt hơn là khai báo chức năng của bạn trong phạm vi cao hơn như thế này:
var displayy;
$[ document ].ready[function[] {
alert['loaded'];
displayy = function [] {
alert['executed'];
}
}];
N.B: Sử dụng các biến toàn cầu là xấu nhưng nó sẽ giải quyết vấn đề của bạn. Xin hãy xem ở đây: Tôi đã nghe các biến toàn cầu là xấu, tôi nên sử dụng giải pháp thay thế nào?
Đã trả lời ngày 23 tháng 3 năm 2017 lúc 20:55Mar 23, 2017 at 20:55
0
Xóa tài liệu.
Tôi cũng gặp vấn đề này. Tôi đã có cuộc gọi đến chức năng trong tệp HTML chính của mình bên trong tài liệu. Đã sẵn sàng và tệp .js bên ngoài cũng được gói định nghĩa chức năng được gọi bên trong chức năng tài liệu. Khi tôi xóa trình bao bọc đó trong tệp .js, nó hoạt động tốt. Điều này cho phép các chức năng trong tệp .js bên ngoài trở thành toàn cầu trong phạm vi.
Đã trả lời ngày 11 tháng 5 năm 2020 lúc 18:33May 11, 2020 at 18:33
Gắn các chức năng của bạn vào đối tượng
$[ document ].ready[function[] {
displayy[];
}];
2. Một cái gì đó như thế này:// Set the container!
window.app = {};
// Define the function.
window.app.say_hello = function[name] {
alert[`Hello ${name}`];
};
// Call the function.
app.say_hello["Iran"];
Tôi đã thử mọi thứ. Chỉ có giải pháp này hoạt động. :]
Đã trả lời ngày 9 tháng 2 năm 2020 lúc 6:20Feb 9, 2020 at 6:20
X 47 48 - IRX 47 48 - IRX 47 48 - IR
1.0721 Huy hiệu vàng10 Huy hiệu bạc26 Huy hiệu đồng1 gold badge10 silver badges26 bronze badges
Bạn xác định chức năng trên DOM đã sẵn sàng, và điều này là vô dụng và sai.
Sử dụng sự kiện sẵn sàng DOM khi bạn gọi chức năng của mình, không phải khi bạn xác định nó:call your function, not when you define it:
Hãy chắc chắn rằng chúng tồn tại trước khi DOM sẵn sàng, sau đó gọi cho họ khi nhận được sự kiện DOM Ready.
So:
- Định nghĩa chức năng -> Khi bắt đầu [không cần phải bọc vào xử lý sự kiện]
- Chức năng gọi -> tại DOM đã sẵn sàng
không ngược lại
Đã trả lời ngày 27 tháng 7 lúc 8:51Jul 27 at 8:51
FrancescommfrancommFrancescoMM
2.7391 Huy hiệu vàng16 Huy hiệu bạc26 Huy hiệu đồng1 gold badge16 silver badges26 bronze badges