嵌套'开'点击和按键功能不起作用?
element.on("click", function(){
element[0].querySelector("input").focus()
element[0].querySelector("input").on('keypress',function(key){
console.log(key)
}
})
这将返回该错误:嵌套'开'点击和按键功能不起作用?
Uncaught TypeError: undefined is not a function
runner:18(anonymous function)
runner:18(anonymous function)
angular.js:2843forEach
angular.js:325eventHandler
而且JSBin
谢谢!
querySelector返回一个DOM对象。 .on
函数是一个jQuery函数。你需要包装它:
$(element[0].querySelector("input")).on('keypress',function(key){
console.log(key)
}
此外,我会厌倦在其他事件处理程序中添加事件处理程序。每当你点击这个元素时,keypress事件就会被添加。如果您单击该元素5次,则输入现在将有5个活动按键事件,除非您在某个时刻删除它。如果你意识到这些影响,你应该只做这件事 - 即使如此,它也可能使代码难以遵循。
“另外,我会厌倦在其他事件处理程序中添加事件处理程序。”为什么? – 2014-09-22 21:00:48
+1好,先生,做得好 – 2014-09-22 21:03:45
@Ninsly我会将该信息添加到答案。 – jwatts1980 2014-09-22 21:04:29
它将注册以下按键的事件,否? – 2014-09-22 20:47:05
通常如果出现错误,我们能够看到它会很棒;) – 2014-09-22 20:47:25
您的发布示例中存在语法错误。你有没有检查控制台日志,以确保你已经修复了任何语法错误? – jwatts1980 2014-09-22 20:50:42