2012-06-17 44 views
0

我有一個jquery datepickers工作不正常,因爲我把它們放在一個jquery標籤插件裏面,所以這只是無法正常工作。jquery datepicker裏面的jquery標籤

下面是代碼: 主頁(指數):

<?php 
include 'all.php'; 
?> 
<html> 
    <head> 
     <meta charset=iso-8859-1" /> 
     <link type="text/css" href="css/smoothness/jquery-ui-1.8.21.custom.css" rel="Stylesheet" /> 
     <link rel="stylesheet" type="text/css" href="css.css"></link> 
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>  
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script> 
     <script type="text/javascript" src="maskMoney.js"></script> 

     <title>Financeiro</title> 
    </head> 

    <body> 
     <script> 
    $(function() { 
     $("#tabs").tabs({ 
      ajaxOptions: { 
       error: function(xhr, status, index, anchor) { 
        $(anchor.hash).html(
         "Couldn't load this tab. We'll try to fix this as soon as possible. " + 
         "If this wouldn't be a demo."); 
       } 
      } 
     }); 
    }); 
    </script> 


     <div> 
<div id="tabs"> 
    <ul> 
     <li><a href="financeiro_ver.php">Buscar saída</a></li> 
     <li><a href="financeiro_criar.php">Criar saída</a></li> 
    </ul> 
</div> 
      </div> 
     <script type="text/javascript" src="view.js"></script> 
     <script type="text/javascript" src="create.js"></script> 
    </body> 
</html> 

對於突片(指datepickers)中的JavaScript代碼: 標籤1( 「Buscar賽達」):

$(
    function(){ 
     $("#data1 , #data2").datepicker({ 
      dayNames    : ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sabado"], 
      dayNamesMin   : ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab"], 
      changeMonth   : true, 
      changeYear   : true, 
      monthNames   : ["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"], 
      monthNamesShort  : ["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"], 
      showAnim    : "fadeIn", 
      dateFormat   : "yy-mm-dd" 
     }); 
    } 
    ); 

的標籤2( 「賽達Criar」):

$(
    function(){ 
     $("#data").datepicker({ 
      dayNames    : ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sabado"], 
      dayNamesMin   : ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab"], 
      changeMonth   : true, 
      changeYear   : true, 
      monthNames   : ["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"], 
      monthNamesShort  : ["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"], 
      showAnim    : "fadeIn", 
      dateFormat   : "yy-mm-dd" 
     }); 
    } 
    ); 

問題:只有在第一次打開標籤頁時纔會出現相關的javascript效果,如果您選擇了標籤並將其更改回來,它將會崩潰。

PS .: moneyMask也無法正常工作(在製表符之前工作),但我認爲它是同一問題的一部分。

回答

2

你需要做一些更多的選項卡配置,因爲你是ajax加載它們。

當您在頁面中的任何位置加載新的html時,即使它具有與它替換的html相同的結構,ID等,也需要在加載後將插件綁定到該新html。

您可以在load的選項中執行此操作,該選項在ajax內容加載後觸發。你也可以看看cache選項,每個選項卡只加載一次ajax內容。

$("#tabs").tabs({ 
     load: function(event, ui) { 
     var $curr_panel=$(ui.panel); 
     $curr_panel.find(selector).datepicker() 
    } 
}); 

您也可以綁定到tabsload事件的任何地方在你的代碼,不只是在標籤初始化代碼。

請參閱活動選項卡中Tabs docs

+0

不知道,沒有看到它們是什麼,如果他們在HTML或對象,或知道他們來了從 – charlietfl

+0

有一個元字符集utf-8標籤? – charlietfl

+0

charset不是在標籤div內工作的,但外面很好。 –

0

ID #tabs的insted的使用類datepicker

<script type="text/javascript"> 
    $(function() { 
     $(".datepicker").datepicker(); 
    }); 
</script>