2014-03-02 21 views
1

我有一個JS日曆腳本,可以在一個div中正常工作。我也有一個採用div和克隆它的jQuery腳本。不過,日曆腳本在克隆的div中不起作用。日曆不會彈出。這裏是我的代碼:添加div時JavaScript日曆不起作用

<script type="text/javascript" src="tcal.js"></script> 

<script> 
$(document).ready(function() { 
$('#addRow').click(function() { 
    $('<div/>', { 
     'class': 'extraPerson', 
     html: GetHtml() 
    }).hide().appendTo('#container1').slideDown('slow'); 
}); 

function GetHtml() { 
var len = $('.extraPerson').length; 
var $html = $('.extraPersonTemplate').clone(); 
$html.find('[name=puloc]')[0].name = "puloc" + len; 
$html.find('[name=pudate]')[0].name = "pudate" + len; 
$html.find('[name=putime]')[0].name = "putime" + len; 
$html.find('[name=punumber]')[0].name = "punumber" + len; 
return $html.html(); 
} 
}); 
</script> 


<div class="extraPersonTemplate"> 

<table frame="box" style="width:500px"> 
     <tr> 
     <td colspan="3"> 
    <?php 
     //php code to access mysql database 

     echo '<select name="puloc" style="width: 482px">'; 
     echo '<option value="">--Select Origin Location--</option>'; 
     while($opt = mysql_fetch_array($resultOptions)) 
     { 
      echo '<option value="'.$opt['displayName'].'">'.$opt['displayName'].'</option>'; 
     } 
     echo '</select>'; 
    ?> 
    </td> 
    </tr> 
    <tr> 
    <td> 
    <link rel="stylesheet" type="text/css" href="tcal.css" /> 
    <script type="text/javascript" src="tcal.js"></script> 
    Pick up date:<BR> 
    <input class="tcal" placeholder="" type ="text" name="pudate" style="width:130px"> 
</td> 
<td> 
    Pick up time<br> 
    <input placeholder="" type ="text" name="putime" style="width:150px"> 
</td> 
<td> 
    Pick up number<BR> 
    <input placeholder="" type ="text" name="punumber" style="width:150px"> 
</td> 
</tr> 
</table> 



<div></div> 
</div> 


<div id="container1"> 
    <script type="text/javascript" src="tcal.js"></script> 
</div> 
<a href="#" id="addRow"><i class="icon-plus-sign icon-white"></i> Add Origin</p></a> 

這是我對引擎收錄的JavaScript文件:http://pastebin.com/WEhJHUKe

+0

你爲什麼包括tcal.js三次?你是否包括jQuery? – j08691

+0

必須在克隆後重新啓動您的日曆。從外觀來看,你通過調用'f_tcalInit()' –

+0

即完成 - 即日曆腳本不會爲新創建的'.tcal'元素'觀察'(也不應該真的) –

回答

1

的TCAL代碼只運行一次,當你生成的頁面(見JS類,它增加了非常最後的方法window.onload的事件處理程序)。它在當時查看頁面,並將tCal元素添加到它看到的具有類'tcal'的行中。添加另一行(即使是該類)也不會觸發另一個更新。

當您添加另一行時,請嘗試再次運行f_tCalInit() - 這會強制它再次檢查頁面,使用'tcal'類找到新行,並向其添加日期控件。

+0

我已經嘗試了下面這兩個,都沒有工作。難道我做錯了什麼? 1.在getHtml()函數中添加f_tcalInit() 2.在我的container1 div中添加f_tcalInit() –

0

將結合日曆到一個函數的代碼,克隆和添加一個新的領域頁面後,再次調用該函數的日曆綁定再次