Функция типа jQuery как переменная - PullRequest
0 голосов
/ 28 апреля 2011

Могу ли я создать переменную, которая является функцией этого типа:

jQuery.fn.appendValueToTextArea = function(txt){
  return this.each(function(){
    this.value += txt;
  });
};

Я пытался поставить var перед ним, но я получаю ошибку.

Ответы [ 3 ]

3 голосов
/ 28 апреля 2011

Если вы хотите вызвать метод для элемента, как вы написали в комментарии, вам определенно необходимо расширить jQuery.func.

Может быть, вы просто хотите сохранить имя в переменной?

var name = 'appendValueToTextArea'; 
element[name]('text');

Единственный другой способ - сохранить ссылку на функцию и использовать .call() или .apply():

var func = jQuery.fn.appendValueToTextArea = function(txt) {
    // ...
};

func.call(element, 'text');

Или (поскольку я не уверен, что вы действительно хотите) вы можете сначала назначить функцию переменной, а затем присвоить ее jQuery.fn.appendValueToTextArea:

var func = function(txt) {
    // ...
};

jQuery.fn.appendValueToTextArea = func;
2 голосов
/ 28 апреля 2011

Что произойдет, если вы определите переменную после , функция была определена?

т.е.

jQuery.fn.appendValueToTextArea = function(txt){
  return this.each(function(){
    this.value += txt;
  });
};

var fn = jQuery.fn.appendValueToTextArea;
1 голос
/ 28 апреля 2011
jQuery.fn.appendValueToTextArea = function(txt){
  return this.each(function(){
    this.value += txt;
  });
};

//This would put the function above in a variable. 
//However, I'm not exactly sure what this gains you    
var myfunction = jQuery.fn.appendValueToTextArea;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...