我正在使用 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();
}