Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
311 views
in Technique[技术] by (71.8m points)

如何封装一个跟confirm一样的方法

如何封装一个跟confirm一样的方法
下面是用三张图片(背景图,确定按钮背景,取消按钮背景)组成,
如何像confirm一样判断返回布尔值,不知道怎么把确认以及取消事件写进方法里,从而能用

$("#btn").click(function(){
    if(!zdyConfirm('确认提交?'))
    {return false;}
    else
    {return true;}
})

clipboard.png

function zdyConfirm(msg)
{
    
    $("body").append("<div id='zDiv' 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: &quot;楷体&quot;;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></div>");
    $("#zH4").text(msg);
}

 function zdyOk()
{
    $("#zDiv").remove();
    window.parent.location.href=window.parent.location.href;   
    window.parent.close();
    return true;
}
 function zdyCancel()
{
    $("#zDiv").remove();

    return false;
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

不可能封装成confirm和原来一样的,自己封装的只能用回调才能模拟和原始confirm一样的效果。
因为alert和confirm会阻塞所有线程,其中就包括GUI渲染线程,而我们写的js是没办法做到的。所以可以用回调达到效果一样。

function iconfirm(msg,callback){
    //加载confirm
    if(点击取消){
         callback(false);
    }else{
         callback(true);
    }
}

调用 
iconfirm('是否删除?',function(s){
    if(s){
    // 执行删除
    }
})


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...