我想要实现
1.点击#skillKey tr元素后代码颜色改变,
2.之后通过键盘输入后改变当前元素的text,为了方便调试讲步骤2省略为alert(123)
HTML代码代码如下:
Q
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,这是为什么?
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
亲~~ keyup是单独的事件,你嵌套在click里算什么?
这个事件 确实单独的。需要循环绑定,没有批量绑定事件这个么操作的。
感觉大家的回答都在逃避问题人的问题。
我测试了一下你说的问题,发现了原因。
这里的keyup后的function需要给一个参数e,相当于是你按键盘键的对象,所以下面就可以执行了。
至于你说的为什么 $(this).keyup(alert(123))可执行,我也不太清楚,希望有人能回答一下