在jquery代码中调用javascript函数外部

Mar*_*us0 1 javascript jquery

$(function(){

function f1(){}
function f2(){}

}

<Input type = radio Name = radiobutton Value = "something" checked=checked onClick= //here call f1()//>
Run Code Online (Sandbox Code Playgroud)

我尝试在OnClick中访问f1函数

像这样的代码不起作用:

$.function.f1()
$.function().f1()
Run Code Online (Sandbox Code Playgroud)

Ric*_*gan 6

那是因为你应该这样做:

$(function () {

    function foo () { }
    function bar () { }

    // bind
    $('input').on('click', foo);

});
Run Code Online (Sandbox Code Playgroud)

...而不是onclick=在HTML标记上添加属性.

编辑

根据要求,一些快速说明为什么你应该做jQuery绑定而不是onclick标记事情.

  1. 你已经在使用jQuery了,简单明了.用它.
  2. 应该花费大量精力来分离HTML,CSS和JS.HTML文件中的HTML,JS文件中的JS,等等.加入onclick=do_backflips()HTML标记会违反这一点,并且将来会导致噩梦般的维护问题.
  3. DOM0 onclick=语法本身就是一种1:1.这意味着,对于每个元素的每个事件,您只能附加一个事件处理程序.这肯定会吸球.
  4. 通过在处理函数内定义您的函数f1f2函数document.ready,您可以在该函数中限制它们的范围.这意味着它们不能在该范围之外引用,这意味着脚本解释器将不知道f1HTML标记的位置.你必须在处理程序已知的情况下附加事件处理程序,并在内部document.ready(如果这是有意义的话).