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