Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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 JQuery-访问外部对象_Javascript_Jquery_Datatables - Fatal编程技术网

Javascript JQuery-访问外部对象

Javascript JQuery-访问外部对象,javascript,jquery,datatables,Javascript,Jquery,Datatables,我有一个带有2个方法的DataTable对象。其中一个(createdRow)包含调用另一个(getFieldType)的回调 在keydown事件中,我想从createdRow调用getFieldType。 我试图使用self引用DataTable对象,但引用失败: 未捕获类型错误:self.getFieldType不是函数 因此,如何调用getFieldType 我的问题不是重复的 因为在我的例子中,控件进入keydown回调,而不触及其余的代码。你能这样做吗?不管怎样,它都不会起作用。您尝

我有一个带有2个方法的DataTable对象。其中一个(
createdRow
)包含调用另一个(
getFieldType
)的回调

keydown
事件中,我想从
createdRow
调用
getFieldType
。 我试图使用
self
引用DataTable对象,但引用失败:

未捕获类型错误:self.getFieldType不是函数

因此,如何调用
getFieldType

我的问题不是重复的
因为在我的例子中,控件进入
keydown
回调,而不触及其余的代码。

你能这样做吗?不管怎样,它都不会起作用。您尝试的是访问dataTables设置上的属性-正确的表示法应该是
self.fnSettings().getFieldType()
,但是设置对象将只保存默认值,包括通过传递的选项可以匹配的值,
getFieldType
被忽略,从不复制。为什么不让
getFieldType
作为
createdRow
中的本地函数呢?因为我想避免代码重复。我第二次用其他代码调用它,我没有在这里发布。你能这样做吗?不管怎样,它都不会起作用。您尝试的是访问dataTables设置上的属性-正确的表示法应该是
self.fnSettings().getFieldType()
,但是设置对象将只保存默认值,包括通过传递的选项可以匹配的值,
getFieldType
被忽略,从不复制。为什么不让
getFieldType
作为
createdRow
中的本地函数呢?因为我想避免代码重复。我第二次用其他代码调用它,我没有在这里发布。
jsTable = $('#ResolvedTable').DataTable( {

   //some other components

    getFieldType: function (id) {
      //some code
    },

    createdRow: function (row, data,index) {

            var table = $('#ResolvedTable').DataTable();
            var datatext = table.$('input, text');
            var self = this;

                //for each input text in the table perform the events
              $(datatext).each(function() {
                    var field;

                    //listen for the enter key
                    $(this).keydown(function (e) {
                        field = self.getFieldType($(this).attr('id'));   
                        handleInputKeyDown(e.keyCode,$(this).val(), field, $(this));
                    });
         });
    }

)}