2017-11-06 17 views
0

小さなオートコンプリートオブジェクトを作成し、結果を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

これは、次の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(); 
} 
}; 
関連する問題