我要做的是当在文本上按下 esc 键时 输入字段(id = txtSearch),一些代码将运行。
这是我的代码:
$(document).ready(function() {
$('#txtSearch').bind('keyup', function(e) {
var characterCode; // literal character code will be stored in this variable
if (e && e.which) { //if which property of event object is supported (NN4)
e = e;
characterCode = e.which;
} else {
characterCode = e.keyCode;
}
if (characterCode == 27) //if esc key
{
//do stuff
}
});
}
它对我不起作用。但是,如果我改变那条线:
$('#txtSearch').bind('keyup', function(e) {
with:
$(document).bind('keyup', function(e) {
一切正常。但我不想将密钥与 esc 绑定到
整个文件......
关于如何仅将keyup与特定绑定绑定的任何建议 文本搜索元素? (或其包含div或其他东西)
谢谢!
答案 0 :(得分:0)
我认为
$('input#txtSearch').bind('keyup', function(e) {
是您要寻找的行。
善,
丹
答案 1 :(得分:0)
确保您的html包含id为txtSearch的元素。
如果您使用的是ASP.NET,则必须更改
$('#txtSearch').bind('keyup', function(e) {
到
$('#<%= txtSearch.ClientID %>').bind('keyup', function(e) {
以便jQuery获得完整生成的id。
答案 2 :(得分:0)
这对我有用:
$(function(){
$('input').keydown(function(e){
if (e.keyCode == 13) {
$(this).parents('form').submit();
return false;
}
});
});
答案 3 :(得分:0)
或者使用:
$('input[id=txtSearch]').bind('keyup', function(e) {
只是一个解决方法。
答案 4 :(得分:0)
我放弃了。我似乎无法找到一种方法将此事件仅附加到<strong> DOM 的特定元素。
所以,这是我的工作:
$(document).keyup(function(e) {
if (e.target.id == "txtSearch") {
var characterCode; // literal character code will be stored in this variable
if (e && e.which) { //if which property of event object is supported (NN4)
e = e;
characterCode = e.which; //character code is contained in NN4's which property
}
else {
characterCode = e.keyCode; //character code is contained in IE's keyCode property
}
if (characterCode == 27) //if generated character code is equal to ascii 27 (if esc key)
{
//do stuff
}
}
});
答案 5 :(得分:0)
在调试器中检查$('#txtSearch').length
或键入
javascript:alert($('#txtSearch').length);
进入地址栏以确保它实际上正在选择一个元素。如果没有,您可以尝试在文本框中添加css类并使用$('.txtSearch')
。