<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
sqHTML = "<div id=\""+sqStringTemp+"\" class=\"puzzlesquare\"><input type=\"text\" class=\"puzzlesquareinput\" maxlength=\"1\" style=\"text-transform: uppercase;\" onkeypress=\"foo(event)\"/></div>";
jQuery("#gridpuzzleouter").append(sqHTML);
function foo(event) {
//console.log(event.charCode);
console.log( String.fromCharCode(event.charCode) );
}
//keydown event
jQuery(".puzzlesquareinput").on('keydown', function() {
alert("keydown...");
});
事件没有解雇我有一个奇怪的问题。 JavaScript函数工作正常,并将键打印到控制台。我想知道为什么keydown事件的jQuery没有触发。我的控制台出现没有错误。 jQuery适用于jsFiddle,但不适用于我的开发机器。
提前致谢...
答案 0 :(得分:1)
如果你在$(document).ready()
上有,那么foo()将是未定义的......试试这个......
更改此代码
function foo(event) {
//console.log(event.charCode);
console.log( String.fromCharCode(event.charCode) );
}
这样的事情......
window.foo = function(event) {
//console.log(event.charCode);
console.log(String.fromCharCode(event.charCode));
}
答案 1 :(得分:0)
当您将其包装在jQuery(document).ready...
方法下时,它将起作用。
$(document).ready(function () {
sqHTML = "<input type=\"text\" class=\"puzzlesquareinput\" maxlength=\"1\" style=\"text-transform: uppercase;\" onkeypress=\"foo(event)\"/>";
jQuery("body").append(sqHTML);
foo = function (event) {
//console.log(event.charCode);
console.log(String.fromCharCode(event.charCode));
}
//keydown event
jQuery(".puzzlesquareinput").on('keydown', function () {
alert("keydown...");
});
});
选中此fiddle