1

我有以下工作 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 不是一个函数。

4

1 回答 1

1

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

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

然后

$(document).on('nested:fieldAdded', myFunc);

(function() {
  $(document).ready(myFunc);
}).call(this);

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

于 2013-04-15T13:35:55.057 回答