Javascript 跟踪单击了哪些元素时,e.target.id有时为空
我正在尝试测试以下JavaScript代码,其目的是跟踪用户在多项选择调查中的响应时间:Javascript 跟踪单击了哪些元素时,e.target.id有时为空,javascript,click-tracking,Javascript,Click Tracking,我正在尝试测试以下JavaScript代码,其目的是跟踪用户在多项选择调查中的响应时间: document.onclick = function(e) { var event = e || window.event; var target = e.target || e.srcElement; //time tracking var ClickTrackDate = new Date; var ClickData = ""; Cli
document.onclick = function(e) {
var event = e || window.event;
var target = e.target || e.srcElement;
//time tracking
var ClickTrackDate = new Date;
var ClickData = "";
ClickData = target.id + "=" + ClickTrackDate.getUTCHours() + ":" +
ClickTrackDate.getUTCMinutes() + ":" +
ClickTrackDate.getUTCSeconds() +";";
document.getElementById("txtTest").value += ClickData;
alert(target.id); // for testing
}
通常,target.id等于单击元素的id,正如您所期望的,但有时target.id为空,看起来是随机的,有什么想法吗?可能是因为单击的元素没有id。例如,如果您有如下HTML,则会发生这种情况:
<div id="example">This is some <b>example</b> text.</div>
var target = e.target || e.srcElement;
while (target && !target.id) {
target = target.parentNode;
}
// at this point target either has an ID or is null
只需使用
e.currentTarget
而不是e.target
,您会发现使用jquery将使这变得更容易,因为它将为您处理浏览器问题、bug和怪癖。看起来确实如此-调查的单选按钮位于表格单元格内,单击按钮后仍在单元格内选择它,但在您的示例中,表单元格没有id。谢谢