Javascript 需要帮助才能完成这个关闭吗
我希望能够从另一个函数调用此函数,而不是像下面的代码中那样使用事件处理程序。我不想使用element.onclick,而是想执行以下操作Javascript 需要帮助才能完成这个关闭吗,javascript,Javascript,我希望能够从另一个函数调用此函数,而不是像下面的代码中那样使用事件处理程序。我不想使用element.onclick,而是想执行以下操作 window.myFunction = (function(){ //the rest of the closure code//} 在这里我可以调用myFunction();从另一个功能,而不必单击按钮 var element = document.getElementById('button'); element.onclick = (function
window.myFunction = (function(){ //the rest of the closure code//}
在这里我可以调用myFunction();从另一个功能,而不必单击按钮
var element = document.getElementById('button');
element.onclick = (function() {
// init the count to 0
var count = 0;
return function(e) {
//count
count++;
if (count === 3) {
// do something every third time
alert("Third time's the charm!");
//reset counter
count = 0;
}
};
})();
这应该适合您:
var element = document.getElementById('button');
var f = (function() {
var count = 0;
return function(e) { //e is not really needed, but left in there anyway
//count
count++;
if (count === 3) {
// do something every third time
alert("Third time's the charm!");
//reset counter
count = 0;
}
};
})();
element.onclick = f;
小提琴:
var element = document.querySelector('#button'),
count = 0;
function myCountFunction(){
count = ++count % 3; // loop count
if ( !count ) { // if count is 0
alert("Third time's the charm!");
}
}
//On click:
element.addEventListener('click', myCountFunction, false);
// Immediately:
myCountFunction(); // this will trigger the event once
// Inside some other function:
function myOtherFunction(){
myCountFunction();
}
除了将闭包分配给变量之外,您能解释一下有什么不同吗?如果只是变量赋值解决了问题,那为什么呢?您的演示中有一个问题:
按钮
@RokoC.Buljan:谢谢,我改成了这样,到底是什么问题?您对原始代码做了很多更改,但还是做了很好的更改。“立即”的评论已不再真实,充其量也不再具有误导性。它不是立即调用的。@Khnle所说的“立即”是指在解析代码和DOM就绪后调用该函数。在我们看来。。。“马上”。不要与其他东西(生活等)混淆。谢谢你的留言。