根据用户输入样式javascript调用不同的事件

时间:2015-07-07 07:43:11

标签: javascript javascript-events

我有一个div,其中包含一个输入元素以输入一些值。按Enter或div事件后,这些值将作为列表元素添加到onFocusOut上方。到目前为止,这很好。但是,如果用户键入某个值并且未按Enter键并直接单击“保存”按钮,则不应调用该onFocusOut的{​​{1}}函数。相反,它应该采用该类型值并调用一些div函数。你对如何检测它有什么建议吗?

我的代码段在这里

JS:

save

1 个答案:

答案 0 :(得分:0)

这不是一个非常精细的解决方案,但您可以在将项添加到列表之前使用setTimeout,并在save.button click上清除setTimeout。 试试这个:

var $saveButton = $('#exampleButton')[0],
    $divInput = $('#exampleInput')[0],
    timedEvent = -1;

$($saveButton).on('click', function(event){
    if(timedEvent) {
        clearTimeout(timedEvent)
    }
    alert('not add to list & save');
})


$divInput.tabIndex="-1";

$($divInput).on('focusout', function(e) {
    timedEvent = window.setTimeout(function() {
        if ($(this).find(e.relatedTarget).length == 0) {
            alert('add to list');
        }
    }, 200);
});

选中此working fiddle