可以“;外部“;javascript函数调用“;jQuery函数”;
Can "external" javascript functions call "jQuery functions"?
我有这个代码:
(function ($) {
$(document).ready(function() {
test("hola","caracola");
});
function test(somevar1, somevar2)
{
alert(somevar1+ "" + somevar2);
}
}(jQuery));
function atest2(somevar1, somevar2)
{
test(somevar1+ "" + somevar2);
}
当执行test2函数时,结果是:
ReferenceError: test is not defined
我的问题是:
如何调用test2来正确执行jQuery的内部测试函数?
感谢
test
仅在其周围的匿名函数中定义。
在大多数情况下,函数定义应该始终位于任何匿名函数之外。当然也有例外,但这些只适用于那些确切知道自己在做什么的人。
如果要在匿名函数之外使用test
,则必须将其导出到全局作用域。这可以通过以下方式实现:
(function ($) {
// ...
function test(somevar1, somevar2) {
alert(somevar1+ "" + somevar2);
}
window.test = test; // <-- This
}(jQuery));
与将函数声明移动到匿名函数之外相比,此方法的最大优点是test
仍然可以使用局部变量,这些变量只能从匿名函数内部访问。
看看这在onready函数之外,然后你就可以使用它了。
function test(somevar1, somevar2)
{
alert(somevar1+ "" + somevar2);
}
(function ($) {
$(document).ready(function() {
test("hola","caracola");
});
}(jQuery));
正如其他成员所说,如果test
函数在匿名函数之外,则可以调用它。这是必要的,因为在匿名函数中定义test
函数限制了test
函数的范围。此外,jquery是javascript的一个很棒的框架,但毕竟它有javascript
,所以一个有效的javascript
snipplet-wud可以与jquery一起工作,反之亦然
您可以使用apply调用函数,也就是从被调用者调用测试
(function ($) {
$(document).ready(function() {
test.apply(this,["hola","caracola"]);
});
function test(somevar1, somevar2)
{
alert(somevar1+ "" + somevar2);
}
}(jQuery));
DEMO
相关文章:
- 执行ajax成功函数-jQUERY
- 函数jquery.html()不提供数据属性集值
- 将变量放入ajax函数JQuery
- 函数jquery的未定义返回
- 如何在嵌套函数jquery上保持变量的值不变
- 用我的函数jquery给出数据/参数
- Firefox在调用函数(jquery)时冻结
- 在传递节时触发一个函数 - jquery
- 循环执行数组函数jQuery
- 在函数中调用另一个函数JQuery
- 对象不是函数-Jquery/JavaScript
- TypeError:对象不是函数-jquery
- 获取函数jQuery设置的属性
- 从函数jquery获取更新的变量值
- 切换而不是悬停函数jQuery
- 函数jQuery.animation()运行了两次行,但不起作用
- 使用函数 jQuery 获取变量
- 自执行函数 jquery 与 JavaScript 的区别
- 从回调函数 -JQuery 获取返回值
- 一个接一个地执行函数 JQUERY