簡體   English   中英

event.target不適用於嵌套元素?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM