Vue에서 BootStrap의 Tooltip을 조작하려고 시도했습니다.
시행 착오 단계도 문장화되어 있으므로 서둘러 마지막 요약하십시오.
시행착오
Try1
우선 평범하게 해보자
<div id="app">
<button class="btn" data-toggle="tooltip" title="Tooltip">hoge</button>
<button class="btn" data-toggle="tooltip" v-bind:title="date">fuga</button>
<button class="btn btn-primary" @click="update">更新</button>
</div>
<!-- (includeとかは略) -->
<script>
new Vue({
el: '#app',
data: {
date: '',
},
methods: {
update: function(){
date=new Date().toString();
$('[data-toggle="tooltip"]').tooltip();
}
}
});
</script>
이 소스를 작성하여 브라우저에서 엽니 다.
결과는...
See the Pen maOXQm by Ibuki (ㅎㅎㅎ) on CodePen .
동적으로 조작하는 분은 동작하지 않습니다!!
검증과 고찰
<div id="app">
<button class="btn" data-toggle="tooltip" title="Tooltip">hoge</button>
<button class="btn" data-toggle="tooltip" v-bind:title="date">fuga</button>
<button class="btn btn-primary" @click="update">更新</button>
</div>
<!-- (includeとかは略) -->
<script>
new Vue({
el: '#app',
data: {
date: '',
},
methods: {
update: function(){
date=new Date().toString();
$('[data-toggle="tooltip"]').tooltip();
}
}
});
</script>
Chrome의 devTool을 살펴 보겠습니다.
어라, title의 내용, 둘 다 없네요…
전자는 대신 속성 data-original-title
에 내용을 포함하는 것으로 보입니다. 1
Try2
에서는 data-original-title에 데이터를 바인딩하면 잘 작동합니까?
See the Pen Vue and Bootstrap Tooltip test 2 by Ibuki ( ㅎㅎㅎ )) on CodePen .
<script async=""src="https://static.codepen.io/assets/embed/ei.js"/>
불행히도 여기는 안됩니다. 분명히 제목 요소를 복사하여 덮어 쓴 것 같습니다.
검증과 고찰
tooltip 호환 메소드는 DOM 그리기 전에 호출되는 것처럼
DOM 그리기 후에 호출되는 것이 좋습니다.
Try3
조사해 보면 Vue에는 updated라는 것이있는 것 같습니다.
공식에 따르면
데이터가 변경된 후 가상 DOM이 다시 그려지고 패치를 적용하여 호출됩니다.
이 후크가 불려 가면(자), 컴퍼넌트의 DOM 는 갱신한 상태가 되어, 이 후크로 DOM 에 의존하는 조작을 실시할 수가 있습니다.
그럼 이것을 사용해 보겠습니다.
See the Pen Vue and Bootstrap Tooltip test 3 by Ibuki ( ㅎㅎㅎ )) on CodePen .
<script async=""src="https://static.codepen.io/assets/embed/ei.js"/>
이번에 이렇게 갔던 것 같습니다!
요약
$(...).tooltip()
는 updated
에서 호출해야합니다.
Reference
이 문제에 관하여(Vue에서 BootStrap의 Tooltip을 조작하려고 시도했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ibuki2003/items/45a2b5710437cb5f6cbf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)