Jquery on Blur和输入冲突

时间:2017-11-06 18:36:28

标签: javascript jquery

我创建了一个小型AutoComplete对象,并将我的结果列为li元素列表。我有一个this.on('input', function () {});事件,当您在列表中选择一个项目并处理正常时会处理该事件。现在我想添加一个blur事件来隐藏结果。添加blur事件会导致input事件停止工作。

$.fn.autoComplete = function () {

    this.on('input', function () {
        AutoComplete(self.val());
    });

    this.on('blur', function () {
        $('#' + settings.resultsDivId).hide();
    });

    function AutoComplete(term) {
        // ajax call
    });
};

1 个答案:

答案 0 :(得分:1)

这在以下JSFiddle中有效 - 看起来你的自动完成功能后出现错误(它以“)结束;”):https://jsfiddle.net/ek5v59t6/

$(function() {
     $('input').autoComplete();
});

$.fn.autoComplete = function () {
     this.on('input', function () {
        console.log('input fired');
        AutoComplete($(this).val());
    });

this.on('blur', function () {
        console.log('blur fired');
    $('#results').hide();
});

function AutoComplete(term) {
    $('#results').show();
}
};