正在检测换档键输入事件
Detecting the shift key entry event
我需要检测一个保持5秒的移位键条目,并需要执行一些功能。
在javascript/JQ中,一个事件可以识别保持5秒的移位键条目,这可能吗?
请帮忙,提前谢谢。
这就行了!
$(function () {
var tmr = 0;
$(document).keydown(function (e) {
if (e.shiftKey == true)
tmr = setTimeout(function () {
$("#status").append("You held the Shift key for 5 seconds!<br>");
clearTimeout(tmr);
}, 5000);
}).keyup(function (e) {
if (e.shiftKey == false)
clearTimeout(tmr);
});
});
<script src="https://code.jquery.com/jquery-1.11.3.js"></script>
<div id="status">
Ready...<br>
</div>
检查这个小提琴
$(document).on('keydown', function(e)
{
var shifted = e.shiftKey;
var downTime = parseInt( $(this).attr( "data-startTimer") );
console.log( shifted );
if ( shifted && isNaN( downTime ) )
{
console.log( downTime );
$(this).attr( "data-startTimer", new Date().getTime() );
}
});
$(document).on('keyup', function(e)
{
var downTime = parseInt( $(this).attr( "data-startTimer") );
if ( !isNaN( downTime ) )
{
console.log( ( new Date().getTime() - downTime ) );
if ( ( new Date().getTime() - downTime ) >= 5000 )
{
console.log( "yesss" );
alert( "you held shift key for 5 seconds or longer" );
}
}
$(this).attr( "data-startTimer", "null" );
});
检查此
var text_area = null;
var shift_key_press_duration = 3 * 1000; /* 5 seconds. */
var key_down = function(event) {
if (event.keyCode == 16) {
var d = new Date();
if(text_area.attr( 'data-time') == 0) {
text_area.attr( 'data-time', d.getTime() );
}
if( (d.getTime() - text_area.attr( 'data-time')) >= shift_key_press_duration ) {
$('#event').append( '<li>Event triggered at: ' + d + "</li>");
alert('Bla');
text_area.attr( 'data-time', '0');
}
}
};
var key_up = function(event) {
text_area.attr( 'data-time', '0');
}
$(document).ready(function() {
text_area = $('#textarea');
text_area
.on('keydown', key_down)
.on('keyup', key_up);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Event:
<ul id="event" style="border: 1px solid blue; min-height: 100px; "></ul>
<br><br>
<textarea id="textarea" style="width: 400px; height: 200px;" data-time="0">
Hold shift key for 3 seconds in this textarea
</textarea>
相关文章:
- 我能从“;输入“;事件是否有更好的方法来跟踪文本更改
- Node.js输入数据事件停止
- 如何创建一个在JavaScript中执行与键盘输入相同事件的按钮
- 如何使用输入模糊事件更新多个具有相同类名的标签的文本
- 在 JQuery 中的复选框上输入关键事件
- 使用输入/输出事件在 Angular 2 中的父组件中触发方法
- 点击上传文件后上传图片!按钮不输入更改事件
- JQuery 焦点,无需输入关键事件快捷方式
- 按键,键控和更改具有相同类名的输入的事件
- 取消表单提交,但允许输入键事件
- JQuery 输入类事件捕获在 MVC 5 ASP.NET 不起作用
- 在数字输入中输入小数时触发输入更改事件
- Javascript-在iframe中输入更改事件
- knockout.js输入框事件更改-传递旧值
- 使用DOM更新时不会触发输入文本事件
- 聚合物输入改变事件
- 谷歌搜索页面-条形码输入触发事件
- Angular.js文件上传器输入onChange事件问题
- 脊梁-怎么通过这个.骨干视图中文件输入更改事件
- 如何使用Javascript验证用户输入添加事件监听器