Categories
Web Programming

jQuery, AJAX và IE7

Hôm nay gặp cái bug thật là đáng ghét bởi vì IE7.
Như các bạn cũng biết mình sử dụng AJAX để load một phần trang web mà thồi (vd như mình dàn trang trong một thẻ div). Đối với một trang web bình thường, mình khai báo một chức năng jquery trong đoạn
$(document).ready(function()
{
...
});

ví dụ như thêm chức năng mouseover/mouseout cho một selector nào đó. Và các chức năng được khai báo sẽ được tự thực hiện đối với các selector(class/id) tìm được trong toàn bộ trang HTML.
Việc này diễn ra bình thường trong FF,IE6. Nhưng hôm nay, vì lý do test nên khi xài IE7 tự nhiên thấy sao không trigger được các chức năng được khai báo đối với các nội dung được load bởi AJAX.

Theo suy đoán, có lẽ IE7 khi sử dụng AJAX để load nội dung vào 1 thẻ (div chẳng hạn), thì nội dung này (DOM) sẽ không được jquery nhận ra các selector, do đó các chức năng của selector trong nội dung AJAX này sẽ không hoạt động.
Mình đã thử mang các hàm khai báo chức năng jquery này ra ngoài đoạn
$(document).ready(function()
{
...
});
mà mang vào load cùng với nội dung của AJAX, và đã thành công, ít ra là thành công thêm với IE7.
Một chút chia sẽ với các bạn.