我已经阅读了几篇关于将本地函数变量传递给javascript中的新函数的帖子,但在我自己的特定情况下仍然遇到问题。
我正在尝试将term
的{{1}}参数传递给它下面的data: function (term, page)
函数。 generateUrl
和this.term = term
(我知道这是不好的做法)不起作用。我应该尝试在window.term = term
之外或在两个内部函数之外声明term
变量,还是应该在$(document).ready(function)
函数内移动generateUrl
定义?< / p>
$("#example").select2
答案 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 };
}
}
});
});