下次输入一些文字时如何触发另一个警报?
例如:
1.放一些文字
2.警报触发
3.再放一些文字
4.再次发出警报触发器
Optional<T>
解答:
谢谢大家帮助我,我根据每个人的答案组合解决了这个问题。
<input type="text" id="test">
<input type="button" id="tool">
$('#test').one("keyup", function(){
$('#tool').tooltip("show");
});
$('#tool').tooltip({
placement: "bottom",
trigger: "focus",
title: "Click here",
});
答案 0 :(得分:0)
然后使用clearTimeout(userTimer);
清除计时器,然后使用setTimeout(doneType, maxTimer*1000);
启动新计时器,如果超时调用函数doneType
var userTimer;
var maxTimer = 2;
//on input, clear the timer and start new timer
$('#test').on('input', function () {
clearTimeout(userTimer);
userTimer = setTimeout(doneType, maxTimer*1000);
});
function doneType() {
alert('keep type?');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="test">
答案 1 :(得分:0)
我认为只使用keyup
事件,没有确定的方法来确定何时完成输入。但你可以尝试去抖动。我已添加underscore.js以使用debouce,但您可以随意使用自己的实现或其他库。来自下划线的辩论文件
用于实现仅在输入停止后才会发生的行为
您可以利用等待时间来满足您的需求。我已经做到了500毫秒
$('#test').on("keyup", _.debounce(function() {
alert("test");
}, 500));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<input type="text" id="test">
去抖动here
的绝佳解释另一种可能的解决方案是附加一个blur
处理程序,如果在input
$("#test").on("blur", function(e) {
alert("Test")
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="text" id="test">
答案 2 :(得分:0)
你不能只使用onchange功能吗?从您的编辑看来,这似乎更适合您的用例。
所以
$('#test').on("change", function(){
alert("test");
});
答案 3 :(得分:0)
试试这个
var triggered = 0; // or false
$('#test').on('input', function() {
if(triggered == 0) {
alert('whatever message here');
triggered++;
}
});
$('#test').on('blur', function() {
// reset the triggered value to 0
triggered = 0;
});