Tôi đang sử dụng các chú giải công cụ bootstrap của Twitter với javascript như sau:
$('a[rel=tooltip]').tooltip();
Đánh dấu của tôi trông như thế này:
<a rel="tooltip" title="Not implemented" class="btn"><i class="icon-file"></i></a>
Điều này hoạt động tốt, nhưng tôi thêm <a>
các phần tử một cách linh hoạt và các chú giải công cụ không hiển thị cho các phần tử động đó. Tôi biết điều đó bởi vì tôi chỉ liên kết .tooltip () một lần khi tài liệu được tải xong với $(document).ready(function()
chức năng jquery điển hình .
Làm thế nào tôi có thể liên kết này với các yếu tố được tạo động? Thông thường tôi sẽ làm điều này thông qua phương thức jquery live (). Tuy nhiên, sự kiện mà tôi sử dụng để ràng buộc là gì? Tôi chỉ không chắc chắn làm thế nào để kết nối bootstrap .tooltip () với jquery .live ().
Tôi đã tìm thấy một cách để làm cho công việc này là như thế này:
/* Add new 'rows' when plus sign is clicked */
$("a.add").live('click', function () {
var clicked_li = $(this).parent('li');
var clone = clicked_li.clone();
clone.find(':input').each(function() {
$(this).val('');
});
clicked_li.after(clone);
$('a[rel=tooltip]').tooltip();
});
Điều này hoạt động, nhưng có vẻ như loại hackish. Tôi cũng đang gọi chính xác dòng .tooltip () trong lệnh gọi $ (sẵn sàng). Vì vậy, các yếu tố tồn tại khi trang tải lần đầu tiên và khớp với bộ chọn đó kết thúc với tooltip hai lần?
Tôi không thấy bất kỳ vấn đề với phương pháp này. Tôi chỉ đang tìm kiếm một thực tiễn tốt nhất hoặc sự hiểu biết về hành vi.
rel
thuộc tính. Đây là phi ngữ nghĩa và có nguồn gốc từ một thập kỷ trước như là một hack. Ngày nay, mọi trình duyệt trở lại trong vài năm đều hỗ trợ data-*
các thuộc tính và không còn lý do nào để không sử dụng chúng.