$(function (){
$( "#example").example({
select: function ( event, ui){
name(id);
}
)};
//now is started non jquery function
function name (id){
document.getElementById(id);
}
});
所以我的问题是 - 如何在jQuery语句之外执行函数 - 在函数(id)的位置,而不是在jquery代码中,例如在脚本的末尾。
答案 0 :(得分:3)
查看此页面:http://stefangabos.ro/jquery/jquery-plugin-boilerplate-revisited/
在“使用”下,您会找到答案
答案 1 :(得分:3)
简单来说 - 你做不到。或者更具体地说,如果您尝试访问jQuery代码中定义的任何内部变量,则可能无法获得所需的结果。
你不能把你的自定义函数放在其他对象的上下文中,当然你不能使用自定义函数并替换jQuery中的另一个函数的内部函数(或者任何其他代码)。
答案 2 :(得分:2)
首先,请注意“jQuery代码”是 JavaScript,因此就语言语法而言,定义或调用函数的方式没有区别。
你的问题不是很清楚,但从一般意义上讲,如果你有一个“普通”的JavaScript,那么非jQuery函数会被声明:
function name(id){
document.getElementById(id);
}
然后你把它称为:
name("someid");
// or
name(id); // assuming id is defined somewhere
如果函数声明在全局范围内,那么您可以从代码中的任何位置调用name()
。
所以你可以从一些jQuery中调用它:
$("selector").jQueryMethodOfSomeKind(function() {
name("someid");
});
或者在您的问题的示例中,这个代码片段本身不起作用但可能是某种对象文字的结尾,要调用name()
函数,您需要删除在它前面的单词function
是这样的:
//some jquery code
select: function ( event, ui){
name(id)
}
});
需要在jQuery代码运行范围内的某处定义id
。
答案 3 :(得分:0)
但请尝试更改代码的顺序:
这是您现在的代码
$(function (){
$( "#example").example({
select: function ( event, ui){
name(id);
}
});
function name (id){
document.getElementById(id);
}
});
如果select
方法立即触发,则name
方法未加载到内存中,
尝试:
$(function (){
function name (id){
document.getElementById(id);
}
$( "#example").example({
select: function ( event, ui){
name(id);
}
});
});