JQuery ON选择器无法正常工作

时间:2014-02-12 12:11:24

标签: javascript jquery

我创建了自定义JS函数,它使用键盘来处理表行。实际上,我使用向上/向下键选择行(预览详细信息),然后按Enter键以模拟双击(编辑详细信息)。

效果很好,您可以在http://jsfiddle.net/n6hn2/19/查看工作示例 只需专注于桌面并尝试向上/向下/输入并查看控制台..

  1. 为什么这对选择器不起作用,比如

    $('#' + tableid).on('keyup', 'tbody', function(e) {...
    

    也尝试'tbody tr'作为选择器,$('#' + tableid + ' tbody tr')但没有尝试。

  2. 当我在输入框中输入内容(search_article)和HIT Enter时,我的函数DblClick被触发。事实上,没有选择器就没问题,但我不希望这样。

3 个答案:

答案 0 :(得分:1)

默认情况下,tbody元素不可聚焦,您需要在tbody上设置任何tabindex属性,例如:

tabindex="-1"

请使用CSS大纲查看完整的DEMO

#tableid :focus {outline:none;}

那么,你可以在tbody上使用keyup处理程序:

$('#' + tableid).on('keyup', 'tbody', function(e) {...});

答案 1 :(得分:0)

  1. 您需要添加tabindex =“0”添加您的班级或ID
  2. 像这样:

     <table id="tableid" tabindex="0">
    

    $("#tableid").on('keyup', function(){
        console.log("2");
    });
    

    测试它:http://jsfiddle.net/mehmetakifalp/n6hn2/25/

答案 2 :(得分:0)

我已经分叉了代码,这个小提琴似乎工作正常:http://jsfiddle.net/5mxS2/

最大的区别是on现在附加到input这样:

$('#' + tableid + ' input').on('keyup', function(e) {
    alert('up');
});