将这个本地js变量作为参数传递给一个新函数
pass this local js variable as an argument to a new function
我读过几篇关于在javascript中将局部函数变量传递给新函数的文章,但在我自己的特殊情况下仍然遇到麻烦。
我试图将给定给data: function (term, page)
的term
参数传递给它下面的generateUrl
函数。this.term = term
和window.term = term
(我知道这是不好的做法)不工作。我应该尝试在$(document).ready(function)
或两个内部函数之外声明term
变量,还是应该将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));
}
});
$(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));
}});
您应该查看一下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 };
}
}
});
});
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 返回一个新函数,而不是工厂中的对象
- JavaScript中的延期/承诺概念是一个新的概念,还是函数式编程的传统部分
- 将“e”传递给一个新函数 - javascript
- 如何使用ES6将两个具有函数的对象合并为一个新对象
- NodeJS:undefined不是一个新函数'新'
- JavaScript可以根据用户输入创建一个新函数
- onClick()从传递给Django模板的函数中获取一个新值
- 在 JavaScript ES2015 中,在扩展类时,我们是否需要显式创建一个新的构造函数,或者我们是否可以只使用父类
- 创建一个新函数并从另一个函数调用参数
- 通常创建一个新函数
- 如何删除Hammer.js 2.0中的事件监听器,并将识别器绑定到一个新函数
- 用PHP打开一个新函数
- 在React中,为每个事件绑定一个新函数的效率低下
- 如何在socket.io中为套接字对象定义一个新函数
- 如何将函数索引和函数数据统一为一个新函数
- 将这个本地js变量作为参数传递给一个新函数
- JavaScript:如何将两个函数合并为一个新函数
- 如何从数组中获得两个值,并将它们包含在angularjs控制器中的一个新函数中
- 声明一个新函数与立即调用它