Javascript:将函数作为参数传递,该参数将在onclick事件中执行
Javascript: Passing a function as argument which will be executed at onclick event
我想创建一个确认框,基于单击按钮时附加一个div的想法到正文,其"确定"按钮执行作为参数给出的函数。如果函数名称不是变量,我设法做到了,但在这种情况下,我需要与我拥有的函数类型一样多的确认框。
这是 html 按钮:
<button onclick=" executeAfterConfirmed( myFunc );">SHOW</button>
这是确认框功能:
function execAfterConfirmed( functionToExecute , arg ){
$("body").prepend("<div id='createdConfirmDiv' ><img id='closeImg' src='close.png' height=30 onclick='$('"div#createdConfirmDiv'").remove()'>CONFIRM ?<br><button class='myConfirmButton' id='yesButton' onclick='$('"div#createdConfirmDiv'").remove();" + functionToExecute + "("+arg+")'>YES</button><button class='myConfirmButton' onclick='$('"div#createdConfirmDiv'").remove()'>NO</button></div>");
}
但是,我得到了意外令牌(
只需以编程方式添加处理程序...
function myFunc() {
alert("myFunc!");
}
function executeAfterConfirmed(functionToExecute, arg) {
var $show = $("#show-button").hide();
$("body").prepend("<div id='createdConfirmDiv'>Test dialog<br><button>OK</button></div>");
$("#createdConfirmDiv button").one("click", function(e){
functionToExecute(arg);
$("#createdConfirmDiv").remove();
$show.show();
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="show-button" onclick="executeAfterConfirmed(myFunc);">SHOW</button>
我希望
我确实理解了您的问题,正如您试图描述的那样。这是一个解决方案:
function confirmBox(button, message, func) {
button.addEventListener('click', function(){
var re = confirm(message);
if (re) func();
})
}
confirmBox( document.getElementById('button'),
"You clicked because you liked me.",
function(){
// do stuff
});
CSS
.createdConfirmDiv{display(none;}
.HTML
<body>
<div id='createdConfirmDiv' >
<img id='closeImg' src='close.png'width="www" height="30" onclick="(remove(0)">CONFIRM?
<br>
<button class='myConfirmButton' id='yesButton' onclick=("remove(1)");>YES
</button>
<button class='myConfirmButton' onclick=("remove(2)";)>NO
</button>
</div>
脚本
myFunc function(f,a){
document.getElementById('createdConfirmDiv').sytle.display='block');
}
remove function(r){
document.getElementById('createdConfirmDiv').sytle.display='none');
if (r==0){
}
if (r==1){
}
相关文章:
- 在onclick函数中传递多个参数
- 更改输入按钮's onClick参数
- 如何使用OnClick事件通过参数调用来调用PHP函数
- 如何向onClick事件处理程序传递一个接受参数的函数,并且仍然将该函数绑定到组件's”;这个“;上下文
- 使用JavaScript将onclick事件与参数绑定
- 如何在HTML按钮中有一个静态onclick参数
- 将字符串作为参数传递给函数onclick event jquery
- Javascript 动态将参数化函数分配给 onclick
- 如何在 OnClick 函数中传递字符串参数
- 按钮onclick应该与参数一起重定向到另一个xhtml页面
- 使用onclick和javascript函数,在参数中调用js-var
- JavaScript将参数传递给按钮onclick函数
- 无法将参数传递给按钮标记内的onclick函数
- 通过参数将传递的函数分配给动态创建的输入类型的onclick事件
- 在ReactJS onclick中传递参数
- 在函数中传递参数,然后调用onClick函数
- innerHTML在onClick事件中将变量作为参数传递
- 无法在onclick方法中传递参数
- 改变& lt; video>参数onclick使用JavaScript
- 在循环中传递参数onclick