Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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/2/jquery/76.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_Refactoring - Fatal编程技术网

Javascript 提取代码以将其放入另一个函数中

Javascript 提取代码以将其放入另一个函数中,javascript,jquery,refactoring,Javascript,Jquery,Refactoring,我有以下工作js/jquery代码: $(document).on('nested:fieldAdded', function(event){ return $('.datetime_field').datetimepicker({ altField: '#datetime_to_server', altFormat: 'yy-m-d', altFieldTimeOnly: false, altTimeFormat: 'hh:mm:00' }); }) 整个函数事件也在别

我有以下工作js/jquery代码:

$(document).on('nested:fieldAdded', function(event){
  return $('.datetime_field').datetimepicker({
  altField: '#datetime_to_server',
  altFormat: 'yy-m-d',
  altFieldTimeOnly: false,
  altTimeFormat: 'hh:mm:00'
}); 
})
整个函数事件也在别处调用:

(function() {

  $(document).ready(function() {
    return $('.datetime_field').datetimepicker({
      altField: '#datetime_to_server',
      altFormat: 'yy-m-d',
      altFieldTimeOnly: false,
      altTimeFormat: 'hh:mm:00'
    });
  });

}).call(this);
我想提取相同的密码,然后打电话给他。问题是我试过了,但我能做到。如何提取相似的代码并从这两个不同的地方调用它

编辑:我试过这个:

$(document).on('nested:fieldAdded', refresh_datetime_listener())

function refresh_datetime_listener(){
return $('.datetime_field').datetimepicker({
  altField: '#datetime_to_server',
  altFormat: 'yy-m-d',
  altFieldTimeOnly: false,
  altTimeFormat: 'hh:mm:00'
}); 
}

但是它说datetimepicker不是一个函数。

正如@dystroy所说的,你试过了吗

function myFunc(event){
  return $('.datetime_field').datetimepicker({
  altField: '#datetime_to_server',
  altFormat: 'yy-m-d',
  altFieldTimeOnly: false,
  altTimeFormat: 'hh:mm:00'
}); 
}
然后


请注意,事件绑定传递的是函数引用,而不是函数调用
myFunc
,而不是@dystroy所说的
myFunc()

function myFunc(event){
  return $('.datetime_field').datetimepicker({
  altField: '#datetime_to_server',
  altFormat: 'yy-m-d',
  altFieldTimeOnly: false,
  altTimeFormat: 'hh:mm:00'
}); 
}
然后


请注意,事件绑定传递的是函数引用,而不是函数调用
myFunc
,而不是
myFunc()

您是如何尝试的?不清楚为什么不能简单地声明函数。关于您的编辑:
on
需要函数,但您给它函数的结果(这里正好是
jQuery
对象)。函数末尾的
()
表示“调用
刷新\u datetime\u侦听器
,并将其返回值传递给
上的
”。因此,当触发事件时,
on
尝试将
jQuery
对象作为函数调用,但意外失败。您是如何尝试的?不清楚为什么不能简单地声明函数。关于您的编辑:
on
需要函数,但您给它函数的结果(这里正好是
jQuery
对象)。函数末尾的
()
表示“调用
刷新\u datetime\u侦听器
,并将其返回值传递给
上的
”。因此,当触发事件时,
on
尝试将
jQuery
对象作为函数调用,这并不令人意外地失败。
(function() {
  $(document).ready(myFunc);
}).call(this);