繁体   English   中英

从HTML访问函数中的javascript函数

[英]Accessing a javascript function within a function from HTML

我有一些javascript代码,可在单击按钮时启动功能

"<input type='text' id='myTest' value='user input' /><input type='button' value='submit' onclick='myFunction();' />"

当myFunction()位于我的javascript的顶层时,此方法有效,但它必须位于另一个函数中。 这可能吗???

我想那就是你想要的?

document.addEventListener("DOMContentLoaded", function(event) { 
    var myEventListener = new myFunc1();
    document.getElementById(mybutton).onclick(myEventListener.myFunc2);

    function myFunc1(){
       this.myFunc2 = function(){
          //DO STUFF...
       }
       //DO OTHER STUFF
    }
}

的HTML:

 <input id="mybutton" type='button' value='submit'/>

这是范围的问题。 DOM中的onclick范围看不到函数内的函数,因此无法调用它。 如果要使用onclick ,则需要在全局范围内定义函数(或者更好的方法是,将jQuery与.on('click', ...) .click().on('click', ...) )。

这不是一个很好的解决方案,但是它的缺点是需要初始化函数以注册内部函数。

function fn() {
    function pi() {
        document.getElementById('myTest').value = Math.PI;
    }
    if (fn.pi) {
        // this is the part for the usual function body
        // skips at the first call
        return 777;
    }
    // make pi public
    fn.pi = pi;
}
fn(); // init function

在适当的地方添加:

<form>
    <input type='text' id='myTest' value='user input' />
    <input type='button' value='submit' onclick='fn.pi();' />
</form>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM