Javascript 在运行时HTML元素上调用click事件处理程序

Javascript 在运行时HTML元素上调用click事件处理程序,javascript,html,event-handling,Javascript,Html,Event Handling,我有一个HTML文件,当用户在表格单元格内单击时,我在其中创建一个文本区域。基本上,它是一个使用表创建的数据网格,当用户单击其中一个表时,它会删除单元格中的文本,并将其替换为文本区域。下面是我在表的onClick处理程序中使用的代码 summaryTableElement.innerHTML = "<textarea id='summaryTextBox' value='TestString' onclick='doNothing(this.id)'> </textarea&g

我有一个HTML文件,当用户在表格单元格内单击时,我在其中创建一个文本区域。基本上,它是一个使用表创建的数据网格,当用户单击其中一个表时,它会删除单元格中的文本,并将其替换为文本区域。下面是我在表的onClick处理程序中使用的代码

summaryTableElement.innerHTML = "<textarea id='summaryTextBox' value='TestString' onclick='doNothing(this.id)'> </textarea> <input type='button' onclick='saveSummary()' value='Save' /> "         

但即使对于子元素,也会返回true

使用指示单击一次的标志。如果已单击,则不要运行该函数。现在是文本区域的问题。在动态创建的html代码中,添加一个
onfocus
事件处理程序,而不是onclick。此外,对于动态添加的所有文本区域,“id”不能相同。使用类似于
“id='xyz'+i+'”
的方法,其中“i”表示要添加的文本区域的计数。

谢谢。我将尝试使用随机id。尽管如此,如果我不处理文本区域上的单击事件,它仍然会传递给父对象。所以,onfocus不会有任何帮助。我将尝试使用标志来代替。如果这样行的话,太棒了,很好。但是我认为,用全局计数代替随机Id可能会更好,我也这么认为。不过,这个身份并不重要。一旦用户输入完文本,我就将数据保存到一个全局字符串中,因此不需要id。添加它只是为了安全目的。
if (id.toString() == "SummaryData")