我有一些javascript代码,可以通过点击按钮启动功能
"<input type='text' id='myTest' value='user input' /><input type='button' value='submit' onclick='myFunction();' />"
当myFunction()位于我的javascript的顶层时,这是有效的,但它需要在另一个函数中。这可能吗???
答案 0 :(得分:0)
我认为那就是你想要的?
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'/>
答案 1 :(得分:0)
这是一个范围问题。您的DOM中的onclick
范围无法看到您的功能内部功能&amp;因此不能称之为。如果您想使用onclick
,则需要在全局范围内定义您的函数(或者更好的是,使用带有.click()
或.on('click', ...)
的jQuery。)
答案 2 :(得分:0)
这不是一个好的解决方案,但它的缺点是需要初始化注册内部函数的函数。
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>