-1

我已经阅读了几篇关于将局部函数变量传递给 javascript 中的新函数的文章,但在我自己的特殊情况下仍然遇到问题。

我正在尝试将给定的term参数传递给它下面data: function (term, page)generateUrl函数。this.term = term并且window.term = term(我知道这是不好的做法)不起作用。我应该尝试在两个内部函数之外或之外声明一个term变量,还是应该将定义移动到函数内部?$(document).ready(function)generateUrl$("#example").select2

$(document).ready(function(){

  $("#example").select2({
      ajax: {
          url: generateUrl(),
          data: function (term, page) {
            this.term = term; // i want to pass this local variable to generateUrl
          }
      }
  });

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

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

    }
    (jQuery));
  }
});
4

2 回答 2

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));

} });

于 2013-04-10T13:59:38.620 回答
0

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

$(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 };
          }
      }
  });
});
于 2013-04-10T17:09:17.553 回答