다음과 같은 자바 스크립트로 Twitter 부트 스트랩 툴팁을 사용하고 있습니다.
$('a[rel=tooltip]').tooltip();
내 마크 업은 다음과 같습니다.
<a rel="tooltip" title="Not implemented" class="btn"><i class="icon-file"></i></a>
이것은 잘 작동하지만 <a>
동적으로 요소를 추가하면 해당 동적 요소에 툴팁이 표시되지 않습니다. 문서가 일반적인 jquery $(document).ready(function()
기능으로 로드가 완료되면 .tooltip ()을 한 번만 바인딩하기 때문 입니다.
이것을 동적으로 생성 된 요소에 어떻게 바인딩 할 수 있습니까? 일반적으로 jquery live () 메소드를 통해이 작업을 수행합니다. 그러나 바인딩에 사용하는 이벤트는 무엇입니까? jquery .live ()로 부트 스트랩 .tooltip ()을 연결하는 방법을 잘 모르겠습니다.
이 작업을 수행하는 한 가지 방법은 다음과 같습니다.
/* 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();
});
이것은 작동하지만 일종의 해킹처럼 보입니다. 또한 $ (ready) 호출에서 정확히 동일한 .tooltip () 줄을 호출합니다. 그렇다면 페이지가 처음로드되고 해당 선택기와 일치 할 때 존재하는 요소가 툴팁으로 두 번 끝나는가?
이 접근법에는 아무런 문제가 없습니다. 나는 행동에 대한 모범 사례 또는 이해를 찾고 있습니다.
rel
속성 을 가로채는 것이 나쁜 스타일 입니다. 이것은 의미가 없으며 10 년 전에 해킹으로 시작되었습니다. 요즘 몇 년 동안 돌아가는 모든 단일 브라우저는 data-*
속성을 지원하므로 더 이상 사용할 이유가 없습니다.