2015-06-20 242 views
0

我想創建一個動態的點擊將數據附加到選項卡,但我得到的選項卡未定義。你能告訴我什麼是錯的嗎?不太清楚是什麼的情況下,JqWidget選項卡 - 動態添加ajax內容的選項卡

我的JS

<script type="text/javascript"> 
     $(document).ready(function() { 
      // Create jqxTabs. 
      $('#jqxTabs').jqxTabs({ width: 580, height: 200,showCloseButtons: true }); 
      var length = $('#jqxTabs').jqxTabs('length') + 1; 
      var loadPage = function (url) { 
       $.get(url, function (data) { 
        data; 
        // console.log($('#content' + length).text(data)); 
        // console.log(data); 
       }); 
      } 
      $('div.s span').click(function() { 
       var getvalue = $(this).attr('rel'); 

     $('#jqxTabs').jqxTabs('addFirst', 'Sample title',loadPage(getvalue).text()); 
       $('#jqxTabs').jqxTabs('ensureVisible', -1); 


}); 


      // $('#jqxTabs').on('selected', function (event) { 
       // var pageIndex = event.args.item + 1; 
       // loadPage('pages/ajax' + pageIndex + '.htm', pageIndex); 
      // }); 
     }); 
    </script> 

我的HTML

回答

1

所以首先檢查標籤控件正確的語法:

HTML:

.... 
<div id='jqxTabs'> 
    <ul> 
    <li></li> 
    </ul> 
    <div></div> 
</div> 

Javasc RIPT:

// Create jqxTabs. 
$('#jqxTabs').jqxTabs({ width: 580, height: 200, showCloseButtons: true }); 
$('#jqxTabs').jqxTabs("removeFirst"); //here removes the empty tab 

//here the function must return the content, and the ajax must be async false for this purpose 
var loadPage = function (url) { 
    var result = null; 
    $.ajax({ 
     url: url, 
     type: 'get', 
     dataType: 'html', 
     async: false, 
     success: function(data) { 
      result = data; 
     } 
    }); 
    return result; 
} 

$('div.s span').click(function() { 
    var getvalue = $(this).attr('rel'); 

    $('#jqxTabs').jqxTabs('addFirst', 'Sample title', loadPage(getvalue)); 
    $('#jqxTabs').jqxTabs('ensureVisible', -1); 
}); 

爲了更好地理解檢查:http://jsfiddle.net/charlesrv/h4573ykv/1/

編輯:對於新的條件下,使用自定義屬性,以便檢查會更容易:

$('div.s span').click(function() { 
    var getvalue = $(this).attr('rel'); 
    var opened = $(this).attr('opened'); 

    if (!opened) { 
     $(this).attr('opened', true); 
     $('#jqxTabs').jqxTabs('addFirst', 'Sample title', loadPage(getvalue)); 
     $('#jqxTabs').jqxTabs('ensureVisible', -1); 
    } 
}); 
+0

未捕獲的錯誤:無效的選擇 - #jqxTabs!請檢查使用的ID或CSS類名稱是否正確。使用您的代碼 –

+0

請添加小提琴以便更好地理解,因爲我已經嘗試過並且沒有問題 –

+0

按預期工作1件事。我們能否以任何方式讓用戶無法從鏈接打開兩次相同的選項卡?所以我們打開gen.php - 我們將標題設置爲簡單標題Gen。現在我們檢查它是否已經打開,如果沒有添加,我們會生成一個警報 –

相關問題