Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何捕获可编辑数据表单元格上的单击事件?_Javascript_Jquery_Html_Datatable_Datatables - Fatal编程技术网

Javascript 如何捕获可编辑数据表单元格上的单击事件?

Javascript 如何捕获可编辑数据表单元格上的单击事件?,javascript,jquery,html,datatable,datatables,Javascript,Jquery,Html,Datatable,Datatables,我使用jquerydatatable,我有一个可编辑的单元格来输入分数。使用双击此字段时,单元格是可编辑的,我希望捕获此事件,以便选择单元格文本,如下所示: $("td form input").focus(function () { concole.log('catched...'); }); 或者像这样: $('#dtbGrade td form').focus(function () { concole.log('catched...'); }); 但我无法捕捉到用户双

我使用jquerydatatable,我有一个可编辑的单元格来输入分数。使用双击此字段时,单元格是可编辑的,我希望捕获此事件,以便选择单元格文本,如下所示:

$("td form input").focus(function () {
    concole.log('catched...');
});
或者像这样:

$('#dtbGrade td form').focus(function () {
    concole.log('catched...');
});
但我无法捕捉到用户双击单元格且单元格已聚焦时发生的事件。另一方面,单元格的呈现html如下所示(为了简洁起见,删除了不必要的行):



是否想捕获此可编辑表格单元格的dbclick事件?

如果动态添加元素,则此操作将不起作用。或许可以这样尝试:

$('#dtbGrade').on('dblclick', 'td form input', function() {
    console.log('caught')
});

这也会将事件绑定到动态添加的元素。

我已经尝试了上面的所有建议,但无论如何,没有一个建议不起作用。工作代码如下所示。如果有需要编辑的评论,欢迎。。。非常感谢Syden和Cris

$('#dtbGrade').dblclick(function () {
    console.log("catched");
    $('#dtbGrade td form input').select();
});

编辑1


@克林特伍德:我忍不住

因此,这与下面的内容具有相同的精神,但是如果您稍后碰巧希望该表中有更多行,那么这将更加健壮和灵活

//提供函数作用域,这样我们就不会污染全局命名空间。
(函数($){
//函数来处理双击事件。
var_onRowDblClick=函数(evt){
//“this”是我们双击的表行元素。
$(this.find(“表单输入”).focus();
//别让这个冒泡出来。
evt.stopPropagation();
}
//使用jQuery委托事件,整个表只有一个事件,但是
//它的作用域仍然是每一行。现在我们可以有多行和多行
//如果添加了“tr”元素,这将自动挂接到“tr”事件
//在初始加载后进行动态调整。
美元(“#dtbGrade”)。在(“dblclick”、“tr”、“uonrowdblclick”);
})(window.jQuery)

想要和额外的单元格以更好地显示示例
我们现在可以多排了!!!

谢谢,但我已经尝试过了,但没有成功:(请记住,无论您双击了哪个单元格/行/列,这都会捕获表内的任何双击。如果您不担心这一点,那么这将很好。您是对的,但您有什么建议?其他建议都不起作用。有什么想法吗?有什么想法吗?需要更多信息,bec正如你所写,因为它对我有效。我需要一个解决方案,通过修正你的答案。它似乎比工作代码更好。有什么修正吗?谢谢,但不是比答案更好的方法。别担心。我想我误解了这个问题。(=但是如果你对这个问题有更好的建议,当然欢迎:)@克林特斯特伍德:我无法控制自己。见上面更新的答案。
$('#dtbGrade').dblclick(function () {
    console.log("catched");
    $('#dtbGrade td form input').select();
});