我已经制作了自己的,自制的,是/否的功能,但它不起作用。
这是功能:
function CoverAndShow (title, text, type) {
if (type == "confirm") {
$("body").append("<div class='msg'><h3>" + title + "</h3><p>" + text + "</p><input class='ok' type='button' value='OK' /><input type='button' class='cancel' value='Cancel' /></div>");
}
$(".ok").click(function() {
return true;
});
$(".cancel").click(function() {
return false;
});
}
这是我在代码中单击“确定”的代码:
$("#ask").click(function() {
if (CoverAndShow("Title","Should I operate?", "confirm") == true) {
alert("true");
}
这不起作用,也不会返回任何内容 非常感谢帮助!
答案 0 :(得分:4)
你需要在这里使用回调。你不能从这种功能返回(查找asyncronity)。将函数作为最后一个参数传递给CoverAndShow
,然后使用返回值调用它。
function CoverAndShow (title, text, type, callback) {
if (type == "confirm") {
$("body").append("<div class='msg'><h3>" + title + "</h3><p>" + text + "</p><input class='ok' type='button' value='OK' /><input type='button' class='cancel' value='Cancel' /></div>");
}
$(".ok").click(function() {
callback(true);
});
$(".cancel").click(function() {
callback(false);
});
}
$("#ask").click(function() {
CoverAndShow("Title","Should I operate?", "confirm", function(ret){
if (ret) { // no need to explicitly check for true
alert("true");
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="ask">ask</div>