我有一系列選項卡。據我所知,所有的標籤加載一次頁面加載。我有一個選項卡,但是我想成爲這個例外。它包含一個我正在加載的小部件,一旦使用點擊特定的選項卡,我只想加載它。僅在單擊選項卡時從選項卡加載代碼
<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(){//讓我們在這裏做很棒的事情});' – Kai 2014-10-07 14:26:09
嗨,謝謝Jh Kaiz,我已經更新了上面的代碼。我嘗試過在if和if之間使用和不使用if($(e.target).attr('href')=='#local'){//}',但都沒有工作。你能看到我有什麼錯嗎?你可以提供你的HTML代碼嗎? – 2014-10-07 14:55:36
?只是' '只有,我需要爲你提供JS解決方案夥計:)。在這種情況下,我認爲你所期望的是'if($(this).attr('href')=='#local'){//做你想做的事情;}' –
Kai
2014-10-07 14:57:30