自己封装了一个弹出框插件,正常的情况下,点击OK,弹出框都会关闭,但是弹框内有表单验证,回调函数内需要有return false阻止关闭,现求插件里这个OK按钮回函数如何判断有return false就能阻止关闭$.dialog({
type : 'confirm',
titleText:'',
html:'',
onClickOk: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);

解决方案 »

  1.   


            $(okBtn).on('click', function(e){
                if (!settings.onClickOk()) //这里需要判断
                    $.dialog.close();
                return false;
            });
      

  2.   


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