素材牛VIP会员
return false如何阻止对话框关闭?
 越***0  分类:JavaScript  人气:811  回帖:1  发布于6年前 收藏

自己封装了一个弹出框插件,正常的情况下,点击OK,弹出框都会关闭,但是弹框内有表单验证,回调函数内需要有return false阻止关闭,现求插件里这个OK按钮的回调函数如何判断有return false就能阻止关闭?

调用:

$.dialog({
    type : 'confirm',
    titleText:'',
    html:'',
    ok:function(){
         ...
        return false; //需要验证阻止关闭
    }
});

插件:

;(function(win,$){
    var wrap, overlay, content, title, close, cancelBtn, okBtn, delBtn, settings, timer;
    var _renderDOM = function(){
        switch (settings.type){
            ...
            case 'confirm' :
                if(settings.showTitle){
                    ...
                }
                content.append(
                    ...
                );
                contentFt.append(
                    cancelBtn = $('<a class="weui_btn_dialog default" href="javascript:;">'+ settings.buttonText.cancel +'</a>'),
                    okBtn = $('<a class="weui_btn_dialog primary" href="javascript:;">'+ settings.buttonText.ok +'</a>')
                );
                break;
            ...
        }
    };

    var _bindEvent = function() {
        $(okBtn).on('click', function(e){
            //这里需要判断
            $.dialog.close();
            return false;
        });
        ...
    };

    $.dialog = function(options) {
        settings = $.extend({}, $.fn.dialog.defaults, options);        
        $.dialog.init();
        return this;
    };   

    $.dialog.init = function(){
        _renderDOM();
        _bindEvent();
    };

    //插件
    $.fn.dialog = function(options){
        return this;
    };

    $.fn.dialog.defaults = {
        ...
        ok : function(){}
    }
})(window, window.Zepto || window.jQuery);
 标签:javascript

讨论这个帖子(1)垃圾回帖将一律封号处理……

Lv4 码徒
23***om JS工程师 6年前#1

没看懂,我理解的是回调函数的return false会阻止窗口关闭,改一下运行顺序,先执行关闭方法,再运行回调函数

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取