jquery中keyup事件为什么不执行?
程序员文章站
2022-04-30 14:35:00
...
我想要实现
1.点击#skillKey tr元素后代码颜色改变,
2.之后通过键盘输入后改变当前元素的text,为了方便调试讲步骤2省略为alert(123)
HTML代码代码如下:
1.点击#skillKey tr元素后代码颜色改变,
2.之后通过键盘输入后改变当前元素的text,为了方便调试讲步骤2省略为alert(123)
HTML代码代码如下:
<table id="skillKey"> <tbody> <tr>Q</tr> </tbody> <table>
JQuery代码如下:
$(function () { $('#skillKey').on('click', 'tr', function () { $(this).css('color','red'); $(this).keyup(function(){ alert(123) }); }); })
为什么点击后元素变色,而通过键盘输入,无法alert?通过$(document).keyup()确实可以达到效果,想知道其中原因。有可能与keyup()要求绑定的元素类型有关?
另:一种错误的keyup()函数调用方法,若这样写:
$(function () { $('#skillKey').on('click', 'tr', function () { $(this).css('color','red'); $(this).keyup(alert(123)); }); })
那么点击tr后元素变色的同时会弹窗123,这是为什么?
先指出你的一个错误点
$('#skillKey').on('click', 'tr', function () { $(this).css('color','red'); $(this).keyup(function(){ alert(123) }); });
你这样绑定事件,结果是点击一次tr绑定一次,点了多少次就绑定了多少次,这个例子还是不明显,你在tr里放置一个input,然后编写如下代码,看看效果如何
$('#skillKey').on('click', 'input', function () { $(this).css('color','red'); $(this).blur(function(){ alert(123) }); });
再给个建议
需要使用的元素可以先缓存,不要滥用$,易读的前提下可以使用链式
$('#skillKey').on('click', 'tr', function () { var $this = $(this); $this .css('color', 'red') .keyup(function () { alert(123) }); });
以上就是jquery中keyup事件为什么不执行?的详细内容,更多请关注其它相关文章!
推荐阅读
-
jQuery绑定事件不执行但alert后可以正常执行
-
jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法
-
jQuery解决添加元素后不执行原有事件的方法
-
Hive的Fetch抓取---为什么hive中执行select,filter,limit不走mapreduce?
-
Jquery中on绑定事件 点击一次 执行多次 的解决办法
-
jQuery绑定事件不执行但alert后可以正常执行
-
jquery中keydown事件如何间隔执行?
-
jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法
-
jquery中ready()函数执行的时机和window的load事件比较_jquery
-
ready与load谁先执行?jquery中ready与load事件的区别