일련의 탭이 있습니다. 페이지가로드되면 모든 탭이로드되는 것을 이해합니다. 그러나 나는 이것에 예외가되고 싶습니다 하나의 탭이 있습니다. 여기에는 특정 탭을 클릭 한 후에로드하고 싶은 위젯이 포함되어 있습니다.탭을 클릭 할 때만 탭에서 코드로드
<div class="tabbable tabbable-custom">
<ul class="nav nav-tabs">
<li class="active">
<a id="nav-tabs-2" data-toggle="tab" href="#info">Details</a>
</li>
<li>
<a data-toggle="tab" href="#live">Live View</a>
</li>
<li>
<a data-toggle="tab" href="#local">Local Storage</a>
</li>
</ul>
</div>
와 다음이 내 탭
<div id="local" class="tab-pane">
<div evercam="localstorage"></div>
<script type="text/javascript" src="https://s3.amazonaws.com/cdn.evercam.io/js/localstorage/0.0.1/hikvision.local.storage.mini.js"></script>
<script type="text/javascript">
$('a[data-toggle="tab"]').on('click','show.bs.tab', function() {
if ($(this).attr('href') == '#local' && !LocalStorage.isLoaded()) {
// Set Evercam Camera ID
LocalStorage.options.cameraId = '<%= @camera['id'] %>';
// OR //
// Using api_id and api_key
LocalStorage.options.api_id = '<%= current_user.api_id -%>';
LocalStorage.options.api_key = '<%= current_user.api_key -%>';
// Finally Load the widget
LocalStorage.Load();
}
})
</script>
</div><!--TAB PANE -->
사용자가 탭을 클릭하면이 위젯을로드합니다. 내가 가진 문제는 사용자가 탭을 빠져 나온 다음 다시 돌아가는 경우입니다. 즉, 위젯을 다시로드하고 위젯의 두 인스턴스가 있습니다! 한 번만로드되도록 할 수있는 방법이 있습니까?
당신의 바인딩 이벤트가 잘못된 것입니다. '$ (selector) .on ('click', 'show.bs.tab', function() {// // 여기에 awesomething을 사용하십시오.}) ' – Kai
고마워요 Jh Kaiz, 위 코드를 업데이트했습니다. 나는 if ($ (e.target) .attr ('href') == 'local ') {{}} 사이에이 비트가 없거나없이 시도했지만 어느 것도 작동하지 않는다. 내가 잘못한 것을 볼 수 있니? –
당신은 귀하의 HTML 코드를 제공 할 수 있습니까? 단지' ', 나는 당신을 위해 JS 해결책을 제공해야합니다 :). 이 경우, 당신이 기대하는 것은'if ($ (this) .attr ('href') == '#local') {// 원하는 것을한다}' –
Kai