Javascript 如何覆盖TwitterTypeahead的onSuggestionMouseEnter
我正在使用Twitter Typeahead,在悬停建议时遇到一些问题,这些建议会触发悬停的建议弹出到我的输入字段中。如果用户随后按enter键,将选择实际悬停值,而不是用户编写的值。我想它被选中,只有当用户点击实际的建议。 似乎是Javascript 如何覆盖TwitterTypeahead的onSuggestionMouseEnter,javascript,jquery,twitter,typeahead,Javascript,Jquery,Twitter,Typeahead,我正在使用Twitter Typeahead,在悬停建议时遇到一些问题,这些建议会触发悬停的建议弹出到我的输入字段中。如果用户随后按enter键,将选择实际悬停值,而不是用户编写的值。我想它被选中,只有当用户点击实际的建议。 似乎是 _onSuggestionMouseEnter() 当鼠标悬停建议时激发的函数。我的问题是,是否可以在我自己的代码中重写此函数?还是用另一种方法来解决这个问题 这是我的预打字代码: var suggestions = new Bloodhound({ da
_onSuggestionMouseEnter()
当鼠标悬停建议时激发的函数。我的问题是,是否可以在我自己的代码中重写此函数?还是用另一种方法来解决这个问题
这是我的预打字代码:
var suggestions = new Bloodhound({
datumTokenizer: function(d) {
return Bloodhound.tokenizers.whitespace(d.value);
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
limit: 100,
remote: {
url: 'url/to/suggestions',
filter: function(list) {
return $.map(list.suggestions, function(word) {
return {s: word.title};
});
}
}
});
suggestions.initialize();
$('.typeahead').typeahead({highlight: true}, {
source: suggestions.ttAdapter(),
name: 'suggestions',
displayKey: 's',
hint: false
})
为了便于将来参考,我在enter键上添加了一个复选框,如下所示:
$("#search-input").keydown(function (e) {
if (e.keyCode == 13 && hoverSuggestion) {
$('.typeahead').typeahead('val', $('.twitter-typeahead pre').text());
$('#search-input').text($('.twitter-typeahead pre').text())
$('#search-form').submit();
}
});
hoverSuggestion = true;
$('.typeahead').typeahead({highlight: true}, {
source: suggestions.ttAdapter(),
name: 'suggestions',
displayKey: 's',
hint: true
}).on('typeahead:cursorchanged', function(event) {
hoverSuggestion = false;
});
hoveSuggestion变量用于检查箭头是否已被使用,如果未被使用,则执行建议的清理。它是这样变化的:
$("#search-input").keydown(function (e) {
if (e.keyCode == 13 && hoverSuggestion) {
$('.typeahead').typeahead('val', $('.twitter-typeahead pre').text());
$('#search-input').text($('.twitter-typeahead pre').text())
$('#search-form').submit();
}
});
hoverSuggestion = true;
$('.typeahead').typeahead({highlight: true}, {
source: suggestions.ttAdapter(),
name: 'suggestions',
displayKey: 's',
hint: true
}).on('typeahead:cursorchanged', function(event) {
hoverSuggestion = false;
});
虽然不是最优雅的解决方案,但它目前仍然有效。欢迎反馈