찾다

 >  Q&A  >  본문

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

如何封装一个跟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: &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></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;
}
ringa_leeringa_lee2789일 전708

모든 응답(3)나는 대답할 것이다

  • 高洛峰

    高洛峰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){
        // 执行删除
        }
    })
    
    

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-11 12:25:19

    创建函数zdyConfirm()的添加你要行部分就可以了呀

    회신하다
    0
  • PHPz

    PHPz2017-04-11 12:25:19

    可不可以把你要点击“确定”后的想要执行的函数,作为参数传递给zdyConfirm,在点击确定后执行此回调函数

    회신하다
    0
  • 취소회신하다