我有以下代码,可以正常使用Live
$('.numbersonly').live('keydown', function (e) {
var key = e.charCode || e.keyCode || 0;
return (key == 8 || key == 9 || key == 46 || (key >= 37 && key <= 40) ||
(key >= 48 && key <= 57) || (key >= 96 && key <= 105));
});
我改为On
$('.numbersonly').on('keydown', function (e) {
var key = e.charCode || e.keyCode || 0;
return (key == 8 || key == 9 || key == 46 || (key >= 37 && key <= 40) ||
(key >= 48 && key <= 57) || (key >= 96 && key <= 105));
});
但是我在min.js文件中遇到脚本错误。我错过了什么吗?
答案 0 :(得分:6)
将事件委托给.numbersonly
或document
的父母,否则
$(document).on('keydown', '.numbersonly', function (e) {
var key = e.charCode || e.keyCode || 0;
return (key == 8 || key == 9 || key == 46 || (key >= 37 && key <= 40) ||
(key >= 48 && key <= 57) || (key >= 96 && key <= 105));
});
答案 1 :(得分:0)
如果您将事件与on绑定,则事件将仅为当前DOM元素(与您的选择器匹配)绑定 所以建议使用'之后''domready事件。
示例:
$(document).ready(function(){
...
$('selector').on('event',eventHandler(e){
...
});
});
如果使用live,则在修改dom树之后,事件将绑定到匹配的元素。 (例如,您使用ajax加载内容)