Tôi đang tạo một trang có một số tương tác được cung cấp bởi javascript. Cũng giống như một ví dụ: các liên kết gửi yêu cầu AJAX để lấy nội dung của bài viết và sau đó hiển thị dữ liệu đó trong div. Rõ ràng trong ví dụ này, tôi cần mỗi liên kết để lưu trữ thêm một chút thông tin: id của bài viết. Cách tôi xử lý trong trường hợp là đưa thông tin đó vào liên kết href này:
<a class="article" href="#5">
Sau đó tôi sử dụng jQuery để tìm các phần tử a.article và đính kèm trình xử lý sự kiện thích hợp. (đừng quá bận tâm về khả năng sử dụng hoặc ngữ nghĩa ở đây, đây chỉ là một ví dụ)
Dù sao, phương thức này hoạt động, nhưng nó có mùi một chút và hoàn toàn không thể mở rộng (điều gì xảy ra nếu hàm nhấp có nhiều hơn một tham số? Nếu một số tham số đó là tùy chọn thì sao?)
Câu trả lời rõ ràng ngay lập tức là sử dụng các thuộc tính trên phần tử. Ý tôi là, đó là những gì họ làm, phải không? (Loại).
<a articleid="5" href="link/for/non-js-users.html">
Trong câu hỏi gần đây của tôi, tôi đã hỏi liệu phương pháp này có hợp lệ không, và hóa ra việc thiếu định nghĩa DTD của riêng tôi (tôi không), thì không, nó không hợp lệ hoặc đáng tin cậy. Một câu trả lời chung là đưa dữ liệu vào class
thuộc tính (mặc dù điều đó có thể là do ví dụ được chọn kém của tôi), nhưng với tôi, điều này còn có mùi hơn nữa. Vâng, nó hợp lệ về mặt kỹ thuật, nhưng nó không phải là một giải pháp tuyệt vời.
Một phương pháp khác mà tôi đã sử dụng trước đây là thực sự tạo ra một số JS và chèn nó vào trang trong một <script>
thẻ, tạo ra một cấu trúc có thể liên kết với đối tượng.
var myData = {
link0 : {
articleId : 5,
target : '#showMessage'
// etc...
},
link1 : {
articleId : 13
}
};
<a href="..." id="link0">
Nhưng điều này có thể là một nỗi đau thực sự ở mông để duy trì và nói chung chỉ là rất lộn xộn.
Vì vậy, để đi đến câu hỏi, làm thế nào để bạn lưu trữ các mẩu thông tin tùy ý cho các thẻ HTML ?