2013-02-12 62 views
0

我一直在網上搜索並找不到答案。 從JQuery UI 1.9.2升級到1.10.0時,除了製表符以外,一切都很順利。 我在1.9.2中設置了'show'選項,並將其替換爲'active'和'activate'。 重點在於,在創建標籤後,不會調用「激活」功能。 我該如何解決這個問題? (我試圖用「創造」活動,但如何調用從「創造」的「激活」事件?JQuery UI選項卡1.10.0激活不會在創建後調用

謝謝。

<html> 
<head> 
    <link href="/css/styles.css" rel='stylesheet' type='text/css'></link> 
    <link href="/css/themes-1.10.0/base/jquery.ui.all.css" rel='stylesheet' type='text/css'></link> 
    <link href="/css/themes-1.10.0/Cupertino/jquery-ui.css" rel='stylesheet' type='text/css'></link> 
    <script src='/js/jquery-1.9.1.min.js' rel='text/javascript'></script> 
    <script src='/js/jquery-ui-1.10.0.custom.js' rel='text/javascript'></script> 
    <script src='/js/jquery.cookie.js' rel='text/javascript'></script> 
    <script src='/js/jquery.browser.js' rel='text/javascript'></script> 
    <script src='/js/jquery.iframe-auto-height.1.9.1.js' rel='text/javascript'></script> 
</head> 
<body class='ui-widget-content'> 
    <div id='tabber'> 
     <ul> 
      <li> 
       <a href="#tabber-00">General information</a> 
      </li> 
      <li> 
       <a href="#tabber-01" url='.page.php'>Remote page</a> 
      </li> 
     </ul> 
     <div id='tabber-00'> 
      <p>Some content here</p> 
     </div> 
     <div id='tabber-01'></div> 
    </div> 
</body> 
<script type='text/javascript'> 
    $(function() { 
     $('#tabber').tabs({ 
     ajaxOptions:{cache:false}, 
     active: ($.cookie('tabber') || 0), 
     activate:function(event,ui) { 
         var tab = ui.newTab.find('a').attr('href'); 
         var url=ui.newTab.find('a').attr('url'); 
         if(url != null) { 
         var html=[]; 
         html.push('<iframe width="100%" height="auto" frameborder="0" margin="0" src="' + url + '">Load Failed?</iframe>'); 
         $(tab).empty(); 
         $(tab).append(html.join('')); 
         $(tab).find('iframe').iframeAutoHeight({minHeight:400}); 
         } 
         alert('activate'); 
         var index = ui.newTab.parent().children().index(ui.newTab); 
         $.cookie('tabber_user_info', index, { expires:999 }) 
        }, 
     }); 
    }); 
</script> 
</html> 

我的主要問題是,我與IFRAME工作,並希望動態能夠加載的iframe頁面時被激活。

+2

請分享您的源代碼。如果你必須使用jsfiddle。 – 2013-02-12 17:17:22

+0

剛剛編輯我的問題的示例 – Cedric 2013-02-12 17:46:50

+0

一些評論:jquery.cookie.js用於存儲/加載最後選定的選項卡,query.iframe-auto-height.js根據內容的高度調整iframe元素的大小 – Cedric 2013-02-12 17:52:33

回答

1

我終於得到了解決。 我有一個「loadTab()」功能,並使用「創造」和「激活」事件。 的loadTab()函數創建一個iframe並根據其內容調整其大小。

我使用以下插件:

  • jquery.cookie.js
  • jquery.browser.js
  • jquery.iframe-自動height.js

感謝。

<html> 

<title></title> 
<head> 

    <link href="/css/styles.css" rel='stylesheet' type='text/css'></link> 
    <link href="/css/themes-1.10.0/base/jquery.ui.all.css" rel='stylesheet' type='text/css'></link> 
    <link href="/css/themes-1.10.0/Cupertino/jquery-ui.css" rel='stylesheet' type='text/css'></link> 
    <script src='/js/jquery-1.9.1.min.js' rel='text/javascript'></script> 
    <script src='/js/jquery-ui-1.10.0.custom.js' rel='text/javascript'></script> 
    <script src='/js/jquery.cookie.js' rel='text/javascript'></script> 
    <script src='/js/jquery.browser.js' rel='text/javascript'></script> 
    <script src='/js/jquery.iframe-auto-height.1.9.1.js' rel='text/javascript'></script> 
</head> 
<body class='ui-widget-content'> 

    <div id='tabber'> 
     <ul> 
      <li> 
       <a href="#tabber-00">Tab 1</a> 
      </li> 
      <li> 
       <a href="#tabber-01" url="page.php">Tab 2</a> 
      </li> 
     </ul> 
     <div id='tabber-00'> 
      <p>Some Text</p> 
     </div> 
     <div id='tabber-01'></div> 
    </div> 
</body> 
<script type='text/javascript'> 
    $(function() { 
     function loadTab(tab) { var href = tab.find('a').attr('href'); var url = tab.find('a').attr('url'); if(url != null) { $(href).empty(); $(href).append('<iframe width="100%" height="auto" frameborder="0" margin="0" src="' + url + '">Load Failed?</iframe>'); $(href).find('iframe').iframeAutoHeight({minHeight:400}); } } 
     $('#tabber').tabs({ 
     ajaxOptions:{cache:false}, 
     active:($.cookie('tabber') || 0), 
     activate:function(event,ui) { loadTab(ui.newTab); var index = ui.newTab.parent().children().index(ui.newTab); $.cookie('tabber', index, { expires:999 }) }, 
     create:function(event,ui) { loadTab(ui.tab); }, 
     }); 

    }); 
</script> 
</html> 
相關問題