1

我正在使用 Dom (HTML / CSS / JavaScript / jQuery) 创建一个自定义对话框。这些对话框有按钮,这些按钮应该有一些功能,其中包含在引发某些特定事件时要执行的指令(onClick ...)。

为了调用这些对话框,我创建了一个 draw( showMessaging(MsgText, Msgtitle, ClickCallback)) 函数。这些函数有一些回调(ClickCallback)要由这些按钮执行,但是当我调用函数(showMessaging)并将某些函数传递给它时,这些按钮会在引发某些事件时执行,回调将被执行而不是函数(showMessaging) .

这是代码。

function showMessagingWarning(sMessage, sTitle, callbackYes) {
    //Reference
    var overlay = $('<div>').addClass('wb_boxOverlay1_');

    if ($('.wb_boxOverlay1_').length > 0) {
        $('.wb_boxOverlay1_').remove();
    }

    $('body').prepend(overlay);

    var msgBox = $('.wx_dialog_boxes'); //boite de message
    var msgIcon = $('.wb_msg_icon_displ'); //icone de la boite de message
    var msgTitle = $('.wb_ms_title_content'); //titre de la boite de dialogue
    var msgContent = $('.wb_msg_message'); //Contenu du message
    var btnNo = $('.wb_msg_box_button_no');
    var btnYes = $('.wb_msg_box_button_yes');
    var btnCancel = $('.wb_msg_box_button_cancel');
    var btnClose = $('.wb_msg_close_lnk');
    //setting up the class
    var tclass = "wb_dlg_warning";

   //Display buttons
    btnNo.css('display', 'none');
    btnCancel.css('display', 'none');
    btnYes.css('display', 'inline-block').children('span').text('OK');

    //ajout des variables
    msgIcon.addClass(tclass);
    msgTitle.text(sTitle);
    msgContent.text(sMessage);

    btnClose.bind('click', '', function () {
        $('.wb_boxOverlay1_').remove();
        $('.wx_dialog_boxes').fadeOut();
    });


    if (callbackYes) {
        btnYes.bind('click', '', callbackYes);
    }

    btnYes.bind('click', '', function () {
        $('.wb_boxOverlay1_').remove();
        $('.wx_dialog_boxes').fadeOut();
    });

    msgBox.show();
}
4

0 回答 0