小编use*_*515的帖子

JavaScript超时触发3次而不是一次(clearTimeout不起作用?)

当用户在键入时暂停(而不是在每次按键后)时,我想触发一个ajax动作.所以我做了这样的事情:

当用户在空闲3秒后停止输入时,将执行完成功能...(它是 - 但为什么3次长短语 - 我希望它只运行一次,因为我在每次keydown后清除超时).问题是什么 ?

var timer; 
var interval = 3000; 
$('#inp').keyup(function() {
  timer = setTimeout(done, interval); 
}); 

$('#inp').keydown(function() {
  clearTimeout(timer)  
}); 

function done() {
  console.log('ajax'); 
}
Run Code Online (Sandbox Code Playgroud)

关于jsfiddle的工作示例:http: //jsfiddle.net/vtwVH/

javascript jquery

10
推荐指数
2
解决办法
1651
查看次数

在js修改输入值后,"滚动"到输入的末尾

我有一个<input id="inp" type="text">用户写入,有时使用字典中的建议.当选择建议时,我做:

var input = $('#inp'); 
input.val(input.val()+suggestedText+' '); 
input.focus(); // that is because the suggest can be selected with mouse
Run Code Online (Sandbox Code Playgroud)

一切都很好,但是当添加一个建议使得结果input.val()太长而无法适应编辑字段时,光标位于字符串的末尾(这很好),但只有字符串的开头在编辑中可见字段,因此光标也被隐藏.

一旦按下一个键(一个改变值的键),"滚动"就会到达隐藏开头的字符串的末尾...如何自动触发此行为,而不必按键?

我在这里找到了一个解决方案- 但由于整个输入体验发生了变化,这并不好......

javascript jquery

7
推荐指数
1
解决办法
1320
查看次数

标签 统计

javascript ×2

jquery ×2