[英]event.target not working for nested element?
我似乎无法使用event.target
来处理嵌套在body
元素中任何类型标记中的元素。 我正在捕获Javascript键击并将它们更新为数组,如下所示:
$(document).keyup(function(event) {
// Check for human
if (event.originalEvent !== undefined)
updateEvents("keyup", event.target, $(event.target).val());
});
function updateEvents(targetEvent, targetElement, targetValue)
{
if (canUpdate)
{
var index = events.length - 1;
if (events[index].targetEvent !== undefined)
{
events[index].targetEvent = targetEvent;
events[index].targetElement = targetElement;
events[index].targetValue = targetValue;
}
}
}
然后在单击按钮以指示开始播放之后,我更新文本字段以模拟实时键入:
var count = 0;
$.each(events, function() {
window.setTimeout(action, 100 * count, count);
count++;
});
function action(index)
{
var targetEvent = events[index].targetEvent;
var targetElement = events[index].targetElement;
var targetValue = events[index].targetValue;
if (typeof targetEvent != "undefined")
{
if (targetEvent == "keyup")
{
// Simulate live typing.
$(targetElement).val(targetValue);
// Retain cursor position and user viewpoint in text fields and textareas.
var length = $(targetElement).val().length;
targetElement.setSelectionRange(length, length);
targetElement.scrollLeft = targetElement.scrollWidth;
targetElement.scrollTop = targetElement.scrollHeight;
$(targetElement).keyup();
}
}
}
在action()
函数中, targetValue
是文本字段的实际值, targetElement
是实际的文本字段元素。 当文本字段位于body标记中时,此代码可以很好地工作,但是将它嵌套在任何类型的标记(例如div)中,它根本不起作用。
我修好了它。 事实证明有一个调用,我正在改变页面的HTML,这搞砸了我的元素ID。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.