2015-02-11 44 views
0

我已經重寫這個問題作爲原始的部分被求解,以一個簡單的解決方案:在被調用的函數使用的對象引用(本)

我有一個動態創建的表,其中將有可能會超過100表單元格()那不會有ID的。當單擊表格單元格時,onclick事件觸發並執行條件檢查以確定它是第一次單擊2系列單擊還是第二次單擊。條件決定設置2個隱藏表單域的哪個值。

現在這裏是簡單的部分即時通訊嘗試完成:onclick,如果它是第一次點擊我想要的背景顏色的對象,觸發該功能是顏色1否則,如果它是第二次點擊那麼它將是顏色2 。

代碼:(JSFiddle Here)

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';} } 
+0

所以表的數據是從PHP /服務器端來了。我將有一個運行在頁面加載的函數,使用Ajax調用PHP返回表數據,然後我會使用JavaScript來追加新的數據(動態)。您可以爲每個呼叫設置偶數處理器,以便觸發一個功能來設置定時器的啓動/停止。在停止計時器內,您可以再次使用ajax提交該單元格的值以便保存新數據或插入新數據。 – NewToJS 2015-02-11 15:11:48

+0

@NewToJS我很抱歉,沒有像秒錶計時器那樣開始/停止時間......我的意思是技術人員的調度員將分配一個時間塊,這些時間可以隨着他們分配給技術人員的每張新票而變化,例如一天計劃。所以舉個例子......一個新的管道呼叫「吉姆」可能被分配在1600Hrs開始,並在1800HR結束。 – DMSJax 2015-02-11 16:23:02

+0

你能給我舉一個你的數據庫表結構的例子嗎?結構是否與此問題中顯示的示例表相同? – NewToJS 2015-02-11 17:09:15

回答

1

您只需通過「本」的功能水庫

小提琴在這裏:

http://jsfiddle.net/sifriday/r3jaapj5/2/

HTML:

<td onclick="res(0900, this);"></td> 

通訊JS的調整:

function res(zz, el) { 
    if (click == 0) {document.getElementById('starget').innerHTML=zz; click = 1; el.style.backgroundColor='green';} else {document.getElementById('etarget').innerHTML=zz; click = 0;} 
} 
+0

謝謝!不知道你可以通過'this'作爲變量 – DMSJax 2015-02-13 15:45:44

+0

是的,它確實是你在這裏做的超級方便! – sifriday 2015-02-13 15:51:17

相關問題