我已經重寫這個問題作爲原始的部分被求解,以一個簡單的解決方案:在被調用的函數使用的對象引用(本)
我有一個動態創建的表,其中將有可能會超過100表單元格()那不會有ID的。當單擊表格單元格時,onclick事件觸發並執行條件檢查以確定它是第一次單擊2系列單擊還是第二次單擊。條件決定設置2個隱藏表單域的哪個值。
現在這裏是簡單的部分即時通訊嘗試完成:onclick,如果它是第一次點擊我想要的背景顏色的對象,觸發該功能是顏色1否則,如果它是第二次點擊那麼它將是顏色2 。
CSS
#test tr td {text-align:center; border: thin black solid;}
SCRIPT
<script>
var x = 0;
var click = 0;
function res(zz) {
if (click == 0) {document.getElementById('start').value=zz; click = 1;} else
{document.getElementById('end').value=zz; click = 0;}
}
</script>
HTML
<form action="" method="POST">
<input type="hidden" name="start" id="start" value="">
<input type="hidden" name="end" id="end" value="">
<input name="submit" type="submit" value="submit" />
</form>
<div id="starget"></div>
<div id="etarget"></div>
<table width="100%" id="test">
<thead>
<tr>
<th>Tech</th><th>0800</th><th>0900</th><th>1000</th><th>1100</th><th>1200</th>
</tr>
</thead>
<tr>
<td>Bill</td>
<td>XXX</td>
<td onclick="res(0900);"></td>
<td>XXX</td>
<td>XXX</td>
<td onclick="res(1200);"></td>
</tr>
</table>
這種變化的工作,如果我想的背景顏色第一次點擊和第二次點擊是相同的:
<td onclick="res(0900);this.style.backgroundColor='green';"></td>
這下面然而不起作用,因爲調用對象()傳遞的本身功能沒有參考(this.style ....),但是其實這是我需要它來工作,因爲我需要有條件的檢查,以確定什麼顏色設置背景的方式:
function res(zz) {
if (click == 0) {document.getElementById('start').value=zz; click = 1;this.style.backgroundColor='green';} else {document.getElementById('end').value=zz; click = 0;this.style.backgroundColor='red';} }
所以表的數據是從PHP /服務器端來了。我將有一個運行在頁面加載的函數,使用Ajax調用PHP返回表數據,然後我會使用JavaScript來追加新的數據(動態)。您可以爲每個呼叫設置偶數處理器,以便觸發一個功能來設置定時器的啓動/停止。在停止計時器內,您可以再次使用ajax提交該單元格的值以便保存新數據或插入新數據。 – NewToJS 2015-02-11 15:11:48
@NewToJS我很抱歉,沒有像秒錶計時器那樣開始/停止時間......我的意思是技術人員的調度員將分配一個時間塊,這些時間可以隨着他們分配給技術人員的每張新票而變化,例如一天計劃。所以舉個例子......一個新的管道呼叫「吉姆」可能被分配在1600Hrs開始,並在1800HR結束。 – DMSJax 2015-02-11 16:23:02
你能給我舉一個你的數據庫表結構的例子嗎?結構是否與此問題中顯示的示例表相同? – NewToJS 2015-02-11 17:09:15