Tôi không nghĩ câu hỏi này đã được đặt ra trước đây, ít nhất là không theo cách tôi cần câu trả lời. Tôi đang sử dụng chức năng .load của jQuery. Tôi gặp sự cố khi chỉ tải các đoạn trang.Các tập lệnh bị tước với jQuery .load
Khi sử dụng một cái gì đó như:
$('#content').load('loadTest.html');
Tất cả các kịch bản trên tải loadTest.html tốt. Tuy nhiên, khi những mảnh tải trang như thế này:
$('#content').load('loadTest.html #content');
các kịch bản được tước ra trước khi DOM được cập nhật
này được ghi chép lại rõ ràng trong http://api.jquery.com/load/ mà nói:
Lưu ý:Khi gọi .load() bằng cách sử dụng một URL mà không có biểu thức chọn hậu tố, nội dung được chuyển tới .html() trước khi các tập lệnh bị xóa. Điều này thực hiện các khối tập lệnh trước khi chúng bị loại bỏ. Tuy nhiên, nếu .load() được gọi với biểu thức chọn được nối vào URL, các tập lệnh sẽ bị loại bỏ trước khi DOM được cập nhật, đó là lý do tại sao chúng không bao giờ được thực hiện. Ví dụ về cả hai trường hợp có thể được xem bên dưới:
Tôi hiểu rằng tôi chỉ có thể tải tập lệnh bên ngoài có thể được sử dụng ở mọi nơi, nhưng tôi đang sử dụng hệ thống ajax trên toàn trang nơi mọi thứ được tải tự động. Vì vậy, tôi không thực sự cảm thấy như có tất cả các chức năng javascript duy nhất mà tôi sẽ bao giờ viết (100's tại thời điểm này) trong các tập tin bên ngoài. Đặc biệt là vì một số hàm javascript này được tạo từ các giá trị được nạp từ một cơ sở dữ liệu mà tôi không thể giải thích trong tệp .js.
Có cách giải quyết nào cho các tập lệnh bị xóa trước khi cập nhật DOM không? Tôi có thể theo cách nào đó tải chúng theo cách thủ công không? Bất kỳ ví dụ nhỏ nào cũng hữu ích cho tôi.
Vì điều gì sẽ tốt? Hoặc theo cách khác vòng: Tại sao bạn không viết chức năng tải của riêng bạn mà không chính xác những gì bạn muốn? – hakre
@hakre Vì toàn bộ trang web được điều khiển ajax, tôi không phải lúc nào cũng biết chức năng javascript nào cần được tải khi liên kết được nhấp. Tôi chỉ không biết làm thế nào để tự đặt các script trở lại trong đó .load đã bị loại bỏ. – Galway