javascript - jquery keyup事件为什么不执行?
怪我咯
怪我咯 2017-04-10 16:29:20
[JavaScript讨论组]

我想要实现
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,这是为什么?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(3)
伊谢尔伦

亲~~ keyup是单独的事件,你嵌套在click里算什么?

PHPz

这个事件 确实单独的。需要循环绑定,没有批量绑定事件这个么操作的。

巴扎黑

感觉大家的回答都在逃避问题人的问题。

我测试了一下你说的问题,发现了原因。

$('#skillKey').on('click', 'tr', function () {
    $(this).css('color','red');
    $(this).keyup(function(){
        alert(123)
    });
});

这里的keyup后的function需要给一个参数e,相当于是你按键盘键的对象,所以下面就可以执行了。

$('#skillKey').on('click', 'tr', function () {
    $(this).css('color','red');
    $(this).keyup(function(e){
        alert(123)
    });
});

至于你说的为什么 $(this).keyup(alert(123))可执行,我也不太清楚,希望有人能回答一下

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号