当用户在文本框中输入并按下输入时,我有一个文本框,应该提醒值,如果用户更改了值,它也应该提醒。因此会有两个事件按键和更改。我想用最少的代码调用它。没有重复的代码。
$('#txt').keydown(function (e){
if(e.keyCode == 13){
alert('you pressed enter ^_^');
}
})
答案 0 :(得分:6)
您可以列出多个事件作为第一个参数(尽管您仍然需要处理每个事件):
$('#txt').bind('keypress change', function (e){
if(e.type === 'change' || e.keyCode == 13) {
alert('you pressed enter ^_^');
}
});
我故意使用bind,因为OTs小提琴使用jQ 1.5.2
答案 1 :(得分:3)
这就是我如何处理这个问题。
注意:我使用$ .live()(v.1.3)而非$ .on()(v1.7)以及返回false 所以我不这样做获得超过1个事件。
$('#txt').live('keypress change', function(e) {
if (e.type === 'keypress' && e.keyCode == 13) {
alert('you pressed enter');
return false;
} else if (e.type === 'change') {
alert('you made a change');
return false;
}
});
答案 2 :(得分:1)
这样的东西?
$('#txt')
.keydown(function (e) {
if(e.keyCode == 13){
alert('you pressed enter ^_^');
}
})
.change(function(e) {
alert('you changed the text ^_-');
});
答案 3 :(得分:1)
尝试live
方法:
$("#txt").live({
change: function(e) {
alert('you changed the value');
},
keydown: function(e) {
if (e.keyCode == 13) {
alert('you pressed enter ^_^');
}
}
});