将此本地js变量作为参数传递给新函数

时间:2013-04-10 13:44:14

标签: javascript variables scope arguments

我已经阅读了几篇关于将本地函数变量传递给javascript中的新函数的帖子,但在我自己的特定情况下仍然遇到问题。

我正在尝试将term的{​​{1}}参数传递给它下面的data: function (term, page)函数。 generateUrlthis.term = term(我知道这是不好的做法)不起作用。我应该尝试在window.term = term之外或在两个内部函数之外声明term变量,还是应该在$(document).ready(function)函数内移动generateUrl定义?< / p>

$("#example").select2

2 个答案:

答案 0 :(得分:1)

$(document).ready(function(){

 $("#example").select2({
  ajax: {
      url: generateUrl(), /* You are calling generateUrl without parameter, 
                               this will cause error
                             Did you actualy mean generateUrl(term) ? */
      data: function (term, page) {
        this.term = term; // i want to pass this local variable to generateUrl
        generateUrl( this.term ); /* Is this what you want to do?  */
      }
  }
});

function generateUrl(term) {
  (function ($) {

    var args = 'keywords=' + term;
    return args;

  }
(jQuery));

} });

答案 1 :(得分:0)

您应该查看select2 documentation,“加载远程数据”部分的示例似乎正是您正在寻找的内容。基于此,我相信您的代码应该是:

$(document).ready(function(){
  $("#example").select2({
      ajax: {
          url: "", // replace that empty string with your ajax base url 
                   // (without any parameters)
          data: function (term, page) {
              return { keywords : term };
          }
      }
  });
});