我正在尝试让元素在HTML表的TR中单击.如果单击TR中的“选择”输入,则CurrentTarget字段返回“ TR”,而OriginalTarget返回“ SELECT”.
这是我的HTML:
<table id="0" class="tableEdit">
<thead>
<tr>
<th name="id"></th>
<th name="name">Descripción Registro</th>
<th name="select">Fecha</th>
</tr>
</thead>
<tbody>
<tr>
<td>1651</td>
<td>Name</td>
<td>
<select name="selectName">
<option value="1">1</option>
<option value="2">2</option>
</select>
</td>
</tr>
</tbody>
</table>
这是我的代码:
//trb is each TR element of the line
$(trb).click(function(elem){
if (elem.currentTarget && elem.currentTarget.tagName.toLowerCase() === "tr" && !isInput(elem.originalTarget)){
if (editableRow){
var rowTrigger = editableRow.find("button").get();
$.editRow(rowTrigger,$.tableEditor.vault.getTableID($("#" + id)));
}
});
这段代码在我的Web浏览器上运行良好,但是在移动设备上却无法运行,因为OriginalTarget返回未定义.有什么方法可以在移动网络浏览器上获得原始目标?
解决方法:
您实际上并没有说过什么是trb,但是听起来它可能是表中的一组tr元素.
您正在寻找的是elem.target.这是被单击的最上面的元素,是启动事件的元素. (FWIW,我不会将传递给事件处理程序的参数称为elem,它是一个事件,而不是元素.)
例如,如果您有:
<table>
<tbody>
<tr>
<td><span><strong>Click me</strong></span></td>
</tr>
</tbody>
</table>
…和这个:
$("tr").click(function(e) {
console.log(e.target.tagName);
});
…然后单击文本“单击我”,您将看到
STRONG
…在控制台中.
旁注:如果您想知道单击了哪个单元格或行,则可以将closest
与之配合使用,例如:
var $td = $(e.target).closest('td');
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。