一个有关js函数执行顺序的问题,未解决...

问题描述(有代码):

0.有个全局变量a(默认为false,这个应该是没有关系的);

1.一个点击按钮,点击这个按钮有个点击事件;

2.点击事件触发后出现一个弹框;弹框上有确定/取消按钮;

3.我想在点击弹出框的确定按钮的时候;让变量a的值变成true;取消的时候变成false;

4.最后输出变量a;

问题来了;button的点击事件触发之后,还没等我点击弹出的确定或者取消按钮;

控制台直接打印出来了a的初始值false(这里我设置的是false)

5.这里我贴出代码,我把插件的css和js直接放在了html里面;

所以文件看起来比较长;真正的逻辑部分20行;希望各位大神耐心教导,不胜感激...

(在代码的270行开始;往后的20行)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<style>
    .alertify,
    .alertify-show,
    .alertify-log {
        -webkit-transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275);
        -moz-transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275);
        -ms-transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275);
        -o-transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275);
        transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275);
        /* easeOutBack */
    }
    
    .alertify-hide {
        -webkit-transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045);
        -moz-transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045);
        -ms-transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045);
        -o-transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045);
        transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045);
        /* easeInBack */
    }
    
    .alertify-log-hide {
        -webkit-transition: all 500ms cubic-bezier(0.600, -0.280, 0.735, 0.045);
        -moz-transition: all 500ms cubic-bezier(0.600, -0.280, 0.735, 0.045);
        -ms-transition: all 500ms cubic-bezier(0.600, -0.280, 0.735, 0.045);
        -o-transition: all 500ms cubic-bezier(0.600, -0.280, 0.735, 0.045);
        transition: all 500ms cubic-bezier(0.600, -0.280, 0.735, 0.045);
        /* easeInBack */
    }
    
    .alertify-cover {
        position: fixed;
        z-index: 99999;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        background-color: white;
        filter: alpha(opacity=0);
        opacity: 0;
    }
    
    .alertify-cover-hidden {
        display: none;
    }
    
    .alertify {
        position: fixed;
        z-index: 99999;
        top: 50px;
        left: 50%;
        width: 550px;
        margin-left: -275px;
        opacity: 1;
    }
    
    .alertify-hidden {
        -webkit-transform: translate(0, -150px);
        -moz-transform: translate(0, -150px);
        -ms-transform: translate(0, -150px);
        -o-transform: translate(0, -150px);
        transform: translate(0, -150px);
        opacity: 0;
        display: none;
    }
    /* overwrite display: none; for everything except IE6-8 */
    
    :root *>.alertify-hidden {
        display: block;
        visibility: hidden;
    }
    
    .alertify-logs {
        position: fixed;
        z-index: 5000;
        bottom: 10px;
        right: 10px;
        width: 300px;
    }
    
    .alertify-logs-hidden {
        display: none;
    }
    
    .alertify-log {
        display: block;
        margin-top: 10px;
        position: relative;
        right: -300px;
        opacity: 0;
    }
    
    .alertify-log-show {
        right: 0;
        opacity: 1;
    }
    
    .alertify-log-hide {
        -webkit-transform: translate(300px, 0);
        -moz-transform: translate(300px, 0);
        -ms-transform: translate(300px, 0);
        -o-transform: translate(300px, 0);
        transform: translate(300px, 0);
        opacity: 0;
    }
    
    .alertify-dialog {
        padding: 25px;
    }
    
    .alertify-resetFocus {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
    }
    
    .alertify-inner {
        text-align: center;
    }
    
    .alertify-text {
        margin-bottom: 15px;
        width: 100%;
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
        font-size: 100%;
    }
    
    .alertify-buttons {}
    
    .alertify-button,
    .alertify-button:hover,
    .alertify-button:active,
    .alertify-button:visited {
        background: none;
        text-decoration: none;
        border: none;
        /* line-height and font-size for input button */
        line-height: 1.5;
        font-size: 100%;
        display: inline-block;
        cursor: pointer;
        margin-left: 5px;
    }
    
    @media only screen and (max-width: 680px) {
        .alertify,
        .alertify-logs {
            width: 90%;
            -webkit-box-sizing: border-box;
            -moz-box-sizing: border-box;
            box-sizing: border-box;
        }
        .alertify {
            left: 5%;
            margin: 0;
        }
    }
    /**
 * Default Look and Feel
 */
    
    .alertify,
    .alertify-log {
        font-family: sans-serif;
    }
    
    .alertify {
        background: #FFF;
        border: 10px solid #333;
        /* browsers that don't support rgba */
        border: 10px solid rgba(0, 0, 0, .7);
        border-radius: 8px;
        box-shadow: 0 3px 3px rgba(0, 0, 0, .3);
        -webkit-background-clip: padding;
        /* Safari 4? Chrome 6? */
        -moz-background-clip: padding;
        /* Firefox 3.6 */
        background-clip: padding-box;
        /* Firefox 4, Safari 5, Opera 10, IE 9 */
    }
    
    .alertify-text {
        border: 1px solid #CCC;
        padding: 10px;
        border-radius: 4px;
    }
    
    .alertify-button {
        border-radius: 4px;
        color: #FFF;
        font-weight: bold;
        padding: 6px 15px;
        text-decoration: none;
        text-shadow: 1px 1px 0 rgba(0, 0, 0, .5);
        box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, .5);
        background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, .3), rgba(255, 255, 255, 0));
        background-image: -moz-linear-gradient(top, rgba(255, 255, 255, .3), rgba(255, 255, 255, 0));
        background-image: -ms-linear-gradient(top, rgba(255, 255, 255, .3), rgba(255, 255, 255, 0));
        background-image: -o-linear-gradient(top, rgba(255, 255, 255, .3), rgba(255, 255, 255, 0));
        background-image: linear-gradient(top, rgba(255, 255, 255, .3), rgba(255, 255, 255, 0));
    }
    
    .alertify-button:hover,
    .alertify-button:focus {
        outline: none;
        background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, .1), rgba(0, 0, 0, 0));
        background-image: -moz-linear-gradient(top, rgba(0, 0, 0, .1), rgba(0, 0, 0, 0));
        background-image: -ms-linear-gradient(top, rgba(0, 0, 0, .1), rgba(0, 0, 0, 0));
        background-image: -o-linear-gradient(top, rgba(0, 0, 0, .1), rgba(0, 0, 0, 0));
        background-image: linear-gradient(top, rgba(0, 0, 0, .1), rgba(0, 0, 0, 0));
    }
    
    .alertify-button:focus {
        box-shadow: 0 0 15px #2B72D5;
    }
    
    .alertify-button:active {
        position: relative;
        box-shadow: inset 0 2px 4px rgba(0, 0, 0, .15), 0 1px 2px rgba(0, 0, 0, .05);
    }
    
    .alertify-button-cancel,
    .alertify-button-cancel:hover,
    .alertify-button-cancel:focus {
        background-color: #FE1A00;
        border: 1px solid #D83526;
    }
    
    .alertify-button-ok,
    .alertify-button-ok:hover,
    .alertify-button-ok:focus {
        background-color: #5CB811;
        border: 1px solid #3B7808;
    }
    
    .alertify-log {
        background: #1F1F1F;
        background: rgba(0, 0, 0, .9);
        padding: 15px;
        border-radius: 4px;
        color: #FFF;
        text-shadow: -1px -1px 0 rgba(0, 0, 0, .5);
    }
    
    .alertify-log-error {
        background: #FE1A00;
        background: rgba(254, 26, 0, .9);
    }
    
    .alertify-log-success {
        background: #5CB811;
        background: rgba(92, 184, 17, .9);
    }
</style>

<body>
    <button class="btn">点击</button>
</body>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
    //这个是插件的初始化
    function reset() {
        alertify.set({
            labels: {
                ok: "确定",
                cancel: "取消"
            },
            delay: 5000,
            buttonReverse: false,
            buttonFocus: "ok"
        });
    }
    //这个变量a是要展现的结果
    var a = false;
    $('.btn').click(function () {
        //这两行不用管
        reset();
        var message = "<h3>Confirm Dialog</h3><p>Do you want to confirm this?</p><br/>";
        //这个弹出之后会有确定或者取消,想让a的值随着点击的不同而不同
        alertify.confirm(message, function (e) {
            if (e) {
                alertify.success("You clicked <strong>OK</strong>");
                a = true;
            } else {
                a = false;
                alertify.error("You clicked <strong>Cancel</strong>");
            }
        });
        console.log(a);
    });
</script>
<script>
    /*! alertify - v0.3.11 - 2013-10-08 */
!function(a,b){"use strict";var c,d=a.document;c=function(){var c,e,f,g,h,i,j,k,l,m,n,o,p,q={},r={},s=!1,t={ENTER:13,ESC:27,SPACE:32},u=[];return r={buttons:{holder:'<nav class="alertify-buttons">{{buttons}}</nav>',submit:'<button type="submit" class="alertify-button alertify-button-ok" id="alertify-ok">{{ok}}</button>',ok:'<button class="alertify-button alertify-button-ok" id="alertify-ok">{{ok}}</button>',cancel:'<button class="alertify-button alertify-button-cancel" id="alertify-cancel">{{cancel}}</button>'},input:'<div class="alertify-text-wrapper"><input type="text" class="alertify-text" id="alertify-text"></div>',message:'<p class="alertify-message">{{message}}</p>',log:'<article class="alertify-log{{class}}">{{message}}</article>'},p=function(){var a,c,e=!1,f=d.createElement("fakeelement"),g={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"otransitionend",transition:"transitionend"};for(a in g)if(f.style[a]!==b){c=g[a],e=!0;break}return{type:c,supported:e}},c=function(a){return d.getElementById(a)},q={labels:{ok:"OK",cancel:"Cancel"},delay:5e3,buttonReverse:!1,buttonFocus:"ok",transition:b,addListeners:function(a){var b,c,i,j,k,l="undefined"!=typeof f,m="undefined"!=typeof e,n="undefined"!=typeof o,p="",q=this;b=function(b){return"undefined"!=typeof b.preventDefault&&b.preventDefault(),i(b),"undefined"!=typeof o&&(p=o.value),"function"==typeof a&&("undefined"!=typeof o?a(!0,p):a(!0)),!1},c=function(b){return"undefined"!=typeof b.preventDefault&&b.preventDefault(),i(b),"function"==typeof a&&a(!1),!1},i=function(){q.hide(),q.unbind(d.body,"keyup",j),q.unbind(g,"focus",k),l&&q.unbind(f,"click",b),m&&q.unbind(e,"click",c)},j=function(a){var d=a.keyCode;(d===t.SPACE&&!n||n&&d===t.ENTER)&&b(a),d===t.ESC&&m&&c(a)},k=function(){n?o.focus():!m||q.buttonReverse?f.focus():e.focus()},this.bind(g,"focus",k),this.bind(h,"focus",k),l&&this.bind(f,"click",b),m&&this.bind(e,"click",c),this.bind(d.body,"keyup",j),this.transition.supported||this.setFocus()},bind:function(a,b,c){"function"==typeof a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent&&a.attachEvent("on"+b,c)},handleErrors:function(){if("undefined"!=typeof a.onerror){var b=this;return a.οnerrοr=function(a,c,d){b.error("["+a+" on line "+d+" of "+c+"]",0)},!0}return!1},appendButtons:function(a,b){return this.buttonReverse?b+a:a+b},build:function(a){var b="",c=a.type,d=a.message,e=a.cssClass||"";switch(b+='<div class="alertify-dialog">',b+='<a id="alertify-resetFocusBack" class="alertify-resetFocus" href="#">Reset Focus</a>',"none"===q.buttonFocus&&(b+='<a href="#" id="alertify-noneFocus" class="alertify-hidden"></a>'),"prompt"===c&&(b+='<div id="alertify-form">'),b+='<article class="alertify-inner">',b+=r.message.replace("{{message}}",d),"prompt"===c&&(b+=r.input),b+=r.buttons.holder,b+="</article>","prompt"===c&&(b+="</div>"),b+='<a id="alertify-resetFocus" class="alertify-resetFocus" href="#">Reset Focus</a>',b+="</div>",c){case"confirm":b=b.replace("{{buttons}}",this.appendButtons(r.buttons.cancel,r.buttons.ok)),b=b.replace("{{ok}}",this.labels.ok).replace("{{cancel}}",this.labels.cancel);break;case"prompt":b=b.replace("{{buttons}}",this.appendButtons(r.buttons.cancel,r.buttons.submit)),b=b.replace("{{ok}}",this.labels.ok).replace("{{cancel}}",this.labels.cancel);break;case"alert":b=b.replace("{{buttons}}",r.buttons.ok),b=b.replace("{{ok}}",this.labels.ok)}return l.className="alertify alertify-"+c+" "+e,k.className="alertify-cover",b},close:function(a,b){var c,d,e=b&&!isNaN(b)?+b:this.delay,f=this;this.bind(a,"click",function(){c(a)}),d=function(a){a.stopPropagation(),f.unbind(this,f.transition.type,d),m.removeChild(this),m.hasChildNodes()||(m.className+=" alertify-logs-hidden")},c=function(a){"undefined"!=typeof a&&a.parentNode===m&&(f.transition.supported?(f.bind(a,f.transition.type,d),a.className+=" alertify-log-hide"):(m.removeChild(a),m.hasChildNodes()||(m.className+=" alertify-logs-hidden")))},0!==b&&setTimeout(function(){c(a)},e)},dialog:function(a,b,c,e,f){j=d.activeElement;var g=function(){m&&null!==m.scrollTop&&k&&null!==k.scrollTop||g()};if("string"!=typeof a)throw new Error("message must be a string");if("string"!=typeof b)throw new Error("type must be a string");if("undefined"!=typeof c&&"function"!=typeof c)throw new Error("fn must be a function");return this.init(),g(),u.push({type:b,message:a,callback:c,placeholder:e,cssClass:f}),s||this.setup(),this},extend:function(a){if("string"!=typeof a)throw new Error("extend method must have exactly one paramter");return function(b,c){return this.log(b,a,c),this}},hide:function(){var a,b=this;u.splice(0,1),u.length>0?this.setup(!0):(s=!1,a=function(c){c.stopPropagation(),b.unbind(l,b.transition.type,a)},this.transition.supported?(this.bind(l,this.transition.type,a),l.className="alertify alertify-hide alertify-hidden"):l.className="alertify alertify-hide alertify-hidden alertify-isHidden",k.className="alertify-cover alertify-cover-hidden",j.focus())},init:function(){d.createElement("nav"),d.createElement("article"),d.createElement("section"),null==c("alertify-cover")&&(k=d.createElement("div"),k.setAttribute("id","alertify-cover"),k.className="alertify-cover alertify-cover-hidden",d.body.appendChild(k)),null==c("alertify")&&(s=!1,u=[],l=d.createElement("section"),l.setAttribute("id","alertify"),l.className="alertify alertify-hidden",d.body.appendChild(l)),null==c("alertify-logs")&&(m=d.createElement("section"),m.setAttribute("id","alertify-logs"),m.className="alertify-logs alertify-logs-hidden",d.body.appendChild(m)),d.body.setAttribute("tabindex","0"),this.transition=p()},log:function(a,b,c){var d=function(){m&&null!==m.scrollTop||d()};return this.init(),d(),m.className="alertify-logs",this.notify(a,b,c),this},notify:function(a,b,c){var e=d.createElement("article");e.className="alertify-log"+("string"==typeof b&&""!==b?" alertify-log-"+b:""),e.innerHTML=a,m.appendChild(e),setTimeout(function(){e.className=e.className+" alertify-log-show"},50),this.close(e,c)},set:function(a){var b;if("object"!=typeof a&&a instanceof Array)throw new Error("args must be an object");for(b in a)a.hasOwnProperty(b)&&(this[b]=a[b])},setFocus:function(){o?(o.focus(),o.select()):i.focus()},setup:function(a){var d,j=u[0],k=this;s=!0,d=function(a){a.stopPropagation(),k.setFocus(),k.unbind(l,k.transition.type,d)},this.transition.supported&&!a&&this.bind(l,this.transition.type,d),l.innerHTML=this.build(j),g=c("alertify-resetFocus"),h=c("alertify-resetFocusBack"),f=c("alertify-ok")||b,e=c("alertify-cancel")||b,i="cancel"===q.buttonFocus?e:"none"===q.buttonFocus?c("alertify-noneFocus"):f,o=c("alertify-text")||b,n=c("alertify-form")||b,"string"==typeof j.placeholder&&""!==j.placeholder&&(o.value=j.placeholder),a&&this.setFocus(),this.addListeners(j.callback)},unbind:function(a,b,c){"function"==typeof a.removeEventListener?a.removeEventListener(b,c,!1):a.detachEvent&&a.detachEvent("on"+b,c)}},{alert:function(a,b,c){return q.dialog(a,"alert",b,"",c),this},confirm:function(a,b,c){return q.dialog(a,"confirm",b,"",c),this},extend:q.extend,init:q.init,log:function(a,b,c){return q.log(a,b,c),this},prompt:function(a,b,c,d){return q.dialog(a,"prompt",b,c,d),this},success:function(a,b){return q.log(a,"success",b),this},error:function(a,b){return q.log(a,"error",b),this},set:function(a){q.set(a)},labels:q.labels,debug:q.handleErrors}},"function"==typeof define?define([],function(){return new c}):"undefined"==typeof a.alertify&&(a.alertify=new c)}(this);
</script>
</html>


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值