我已经重写这个问题作为原始的部分被求解,以一个简单的解决方案:在被调用的函数使用的对象引用(本)
我有一个动态创建的表,其中将有可能会超过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