我想基于以下想法创建一个确认框:单击按钮时,会附加一个div 到正文,它的OK按钮执行一个作为参数给出的函数。如果函数名不是变量,我设法做到了,但在这种情况下,我需要尽可能多的确认框和我有的许多类型的函数。
这是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>");
}
然而,我得到了意外的令牌(
答案 0 :(得分:0)
我希望我确实理解你的问题,正如你想描述的那样。这是一个解决方案:
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
});
答案 1 :(得分:0)
只需以编程方式添加处理程序......
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();
});
}
&#13;
<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>
&#13;
答案 2 :(得分:0)
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>
SCRIPT
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){
}