我有一个包含物品的清单
当我点击其中任何一项时,我将其id
- 值复制到表单text
- 字段中。
每次单击时,它都会替换该值,默认情况下该值是正确的。但我想补充的是,用户可以在键盘上按住某个键,然后当他们点击时,只需.append
,只需点击相同的表单字段即可。
这是我用于第一个/默认场景的jQuery代码:
$(function(){
$('ul#filter-results li').click(function(){
var from = $(this).attr('id'); // get the list ID and
$('input#search').val(from+' ').keyup(); // insert into text-field then trigger the search and
$('input#search').focus(); // make sure the field is focused so the user can start typing immediately
});
});
有没有办法实现某种键盘键监听器?
类似的东西:
if (e.shiftKey){
.append('this text instead')
}
尚未尝试查看此处shiftKey
是否为任何有效名称
答案 0 :(得分:2)
$('ul#filter-results').on('click', 'li', function(e) {
if(e.shiftKey) {
do something;
} else {
do something else;
}
});
答案 1 :(得分:2)
shiftKey
是事件对象的一个属性,可以使用。试试这个:
$(document).on('keyup click', function(e){
if (e.shiftKey) {
$('input#search').focus()
$('input#search').val(e.target.id)
}
})
答案 2 :(得分:1)
答案 3 :(得分:0)
这就是我最终的结果:
我切换到altKey
因为shiftKey
在点击时标记了大量文字
没有做任何事情,除了看起来不太好......
$(function(){
$('ul#filter-results li').click(function(e){
var text = $(this).attr('id'); // get the ID
var input = $('#search'); // form field to insert text into
if (e.altKey){ input.val(input.val()+', '+text+' ').keyup(); } // fetch whatever is already there, and add some more
else { input.val(text+' ').keyup(); } // just replace whatever is already there
$('#search').focus();
});
});
感谢您提出好的建议......