MooTools函数返回值

时间:2011-10-11 12:55:49

标签: javascript mootools mootools1.2

我正在开发MooTools确认框功能。我有两个按钮,可以正常取消。

所以我想点击OK返回TRUE,点击CANCEL返回FALSE。

这是我的功能代码。

function confirm_box(title, text)
{
    var className = 'msgAlert info';
    var defaut_title ='Information';

    // Placing the Overlay
    var overlay = new Element('div', {'class':'msgAlert_overlay'});
    $$('body').adopt(overlay);

    // Placing the Main Div With class name
    var main_box  = new Element('div', {'class': className});
    $$('body').adopt(main_box);

    var content_div = new Element('div', {'class':'msgAlert_popup'});
    //<a href="javascript:;" class="msgAlert_close"></a>
    if(title == '')
        title=defaut_title;
    content_div.set('html','<div class="msgAlert_header"><h4>'+title+'</h4></div><div class="msgAlert_content">'+text+'</div>');
    main_box.adopt(content_div);

    content_div.getChildren('a.msgAlert_close');

    var footer_div = new Element('div',{'class':'msgAlert_footer'});
    var ok_btn = new Element('button');
    ok_btn.addEvent('click', function(){
        main_box.fade(0);
        //overlay.fade(0);
        (function(){main_box.dispose(); overlay.dispose(); }).delay(350);
        return true;
    });

    var cancel_btn = new Element('button');
    cancel_btn.addEvent('click', function(){
        main_box.fade(0);
        //overlay.fade(0);
        (function(){main_box.dispose(); overlay.dispose();}).delay(350);
        return false;
    });

    ok_btn.set('html','Ok');
    cancel_btn.set('html','Cancel');
    footer_div.adopt(ok_btn);
    footer_div.adopt(cancel_btn);
    main_box.adopt(footer_div);
    ok_btn.focus();
}

我点击相应按钮后返回TRUE和FALSE。

可以建议以哪种方式去,所以我可以像JS确认框一样访问我的功能:

就像:

if(confirm_box(title, text))
{
 alert('Yes');
}
else
{
 alert('No');
}

1 个答案:

答案 0 :(得分:1)

这不起作用。基本上,你可以使用原生的

if (confirm("are you sure")) { ... } else { ... }

这很好,因为它阻止了UI线程......

如果要复制确认框,则需要使用事件回调方法,因为您的函数不具有返回值。

在伪代码中,这将是:

var confirm_box = function(title, text, onConfim, onCancel) {

    ... 
    confirmEl.addEvent("click", onConfirm);

    cancelEl.addEvent("click", onCancel);
};


confirm_box("Are you sure?", "Please confirm by clicking below", function() {
    alert("yes");
}, function() {
    alert("no");
});

在mootools和Classes的上下文中,您可能希望执行一个与事件一起使用的确认类。如果你想要一个例子,请给我一个喊叫。