如何在jQuery代码之外执行JS函数

时间:2012-03-01 09:00:54

标签: javascript jquery

$(function (){    
$( "#example").example({
select: function ( event, ui){
name(id);
}
)};
//now is started non jquery function
function name (id){
    document.getElementById(id);
}
});

所以我的问题是 - 如何在jQuery语句之外执行函数 - 在函数(id)的位置,而不是在jquery代码中,例如在脚本的末尾。

4 个答案:

答案 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);
        }
    });
});