我有一个自动填充搜索字段(typeahead.js),点击搜索建议即on click
时触发了一个行为。
我希望在向下箭头并按下输入建议时触发相同的行为。
所以我希望行为发生on click
或on pressing enter
。
在下面的示例中,我使用输入字段而不是复制完整的typeahead.js搜索方案。
以下代码的问题在于,只有在输入字段中按Enter键时才触发(因为条件附加到e
)而不是on click
。
HTML
<input class="hello" value="hello">
的jQuery
$(document).on("click keypress",".hello", function (e) {
if (e.which == 13) {
alert($(this).val());
}
});
的jsfiddle
http://jsfiddle.net/rwone/9xhK3/
修改
使用typeahead代码更新了jsFiddle:
答案 0 :(得分:2)
我想你需要找到事件类型并且只需要or
$(document).on("click keypress",".hello", function (e) {
if(e.which == 13 || e.type == "click") {
alert($(this).val());
}
});
答案 1 :(得分:0)
<强>解决方案强>
看到这篇文章后:
https://stackoverflow.com/a/18710896/1063287
此代码:
http://codepen.io/Sinetheta/pen/eAwcl
和这个资源:
https://github.com/twitter/typeahead.js/issues/300
function searchFunction() {
$('.my_class .typeahead').typeahead({
name: 'my_name',
valueKey: 'my_key',
prefetch: 'path/to/json.json',
template: [
'<p class="key1">[[key_1]]</p>',
'<p class="my_key">[[my_key]]</p>',
'<p class="key3">[[key_3]]</p>'
].join(''),
engine: Hogan
}).on('typeahead:selected', function(event, selection) {
var my_key = selection.my_key;
alert(my_key);
});
}