Heim > Fragen und Antworten > Hauptteil
如何封装一个跟confirm一样的方法
下面是用三张图片(背景图,确定按钮背景,取消按钮背景)组成,
如何像confirm一样判断返回布尔值,不知道怎么把确认以及取消事件写进方法里,从而能用
$("#btn").click(function(){
if(!zdyConfirm('确认提交?'))
{return false;}
else
{return true;}
})
function zdyConfirm(msg)
{
$("body").append("<p id='zp' style='background:url(images/success.png);width:189px;height:148px;position:absolute;top: 20%;left:50%;margin-left:-100px;'><h4 id='zH4' style='position:absolute;margin-top: 58px;margin-left: 73px;font-size: 16px;font-family: "楷体";color: #695e5e;'></h4><a id='zAok' onclick='zdyOk()' style='cursor:pointer;position:absolute;margin-top:100px; margin-left:40px;' ><img src='images/sure.png'/></a><a id='zAcancel' style='cursor:pointer;position:absolute;margin-top:100px; margin-left:110px;' onclick='zdyCancel()'><img src='images/cancel.png'/></a></p>");
$("#zH4").text(msg);
}
function zdyOk()
{
$("#zp").remove();
window.parent.location.href=window.parent.location.href;
window.parent.close();
return true;
}
function zdyCancel()
{
$("#zp").remove();
return false;
}
高洛峰2017-04-11 12:25:19
不可能封装成confirm和原来一样的,自己封装的只能用回调才能模拟和原始confirm一样的效果。
因为alert和confirm会阻塞所有线程,其中就包括GUI渲染线程,而我们写的js是没办法做到的。所以可以用回调达到效果一样。
function iconfirm(msg,callback){
//加载confirm
if(点击取消){
callback(false);
}else{
callback(true);
}
}
调用
iconfirm('是否删除?',function(s){
if(s){
// 执行删除
}
})