Trong bài này chúng ta sẽ tìm hiểu thuộc tính document activeElement trong javascript. activeElement javascript giúp ta lấy phần tử HTML đang focus. Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức. Thường thì activeElement sẽ trả về HTMLInputElement hoặc HTMLTextAreaElement nếu bạn đang lựa chọn tài liệu tại thời điểm chạy. Vì vậy, bạn có thể sử dụng thuộc tính selectStart và selectEnd để xem có phải không. Các trường hợp còn lại thì đa số là đang focus vào thẻ select hoặc input. 1. activeElement javascript là gì?Thuộc tính activeElement sẽ lựa chọn phần tử hiện đang được focus trong tài liệu. Thuộc tính này chỉ có quyền Còn nếu muốn thiết lập focus tới một thẻ html nào đó thì sử dụng thuộc tính phương
thức Bài viết này được đăng tại [free tuts .net] Để tìm kiếm xem tài liệu nào có thể focus thì ta dùng phương thức document.hasFocus(). Cú pháp activeElement như sau: Để lấy tên của thẻ HTML mà method này trả về thì ta sử dụng thuộc tính tagName. document.activeElement.tagName 2. Ví dụ tổng hợp activeElement javascriptHãy viết chương trình gắn sự kiện click vào thẻ body, hành động của sự kiện này là lấy đối tượng mà con trỏ focus, sau đó xuất thông báo cho người dùng biết là đang focus vào thẻ HTML nào. Ta sẽ sử dụng thuộc tính activeElement để tìm kiếm phần tử hiện đang được focus và hiển thị chúng: <body onclick="myFunction()"> <h2>Học lập trình miễn phí tại freetuts.net</h2> <p>Các bạn click vào bất cứ điểm nào trên trang để tìm phần tử đang được focus</p> <input type="text" value="Thẻ Input"> <button>Thẻ Button</button> <p id="result"></p> <script> function myFunction() { var x = document.activeElement.tagName; document.getElementById("result").innerHTML = "bạn đang focus vào thẻ " + x; } </script> </body> Trong ví dụ, mình có đặt sự kiện Trên là phần hướng dẫn sử dụng activeElement trong javascript. bạn phải đặt id hoặc class riêng biệt cho mỗi menu. mỗi lần lưu lại vào localStorage thì b lưu cái id. mỗi cái id cho từng menu phải khác nhau. Sau đấy khi b load lại trang thì bạn so sánh cái id trùng với div nào thì bạn add thêm class active cho div đó chứ không phải là lưu vào localStorage đều chung tên active như vậy thì nó biết cái nào là đang active chứ nhỉ. Với đoạn code của bạn có thành sửa thành như sau :
Lưu ý thêm id và xóa hết tất cả class active cho mỗi menu để chạy được nhé ! |