空白ボックスで確認ダイアログを実装しようとしています。私のjavascriptコードはモジュールに整理されています。呼び出される前に実行されるコールバック
私は、「ユーティリティ」と呼ばれるモジュール内部の確認ダイアログ機能を設定した
var Utility = (function() {
function confirm_dialog(title,msg,callback)
{
var html = '<div class="confirm-box">'+
'<div class="confirm-title">'+title+'</div>'+
'<div class="confirm-msg">'+msg+'</div>'+
'<div class="confirm-buttons">'+
'<button class="okBtn">Ok</button>'+
'<button class="cancelBtn">Cancel</button>'+
'</div>'+
'</div>';
var ret;
$.fancybox('<div class="confirm-dialog"></div>',
{
'width':400,
'height':250,
'content':html,
'modal' : true,
'transitionIn' : 'none',
'transitionOut': 'none',
'speedIn' : 300,
'speedOut' : 300,
'autoScale' : false,
'scrolling' : 'no',
'overlayShow' : true,
'overlayOpacity' : 0.3,
'overlayColor' : '#666',
'padding':10,
'onComplete':function() {
$('.okBtn').click(function(){
ret = true;
$.fancybox.close();
})
$('.cancelBtn').click(function() {
ret = false;
$.fancybox.close();
})
},
onClosed : function() {
if (typeof callback == 'function'){ callback.call(this, ret); } }
});
}
return { dialog : confirm_dialog }
})();
これは、イベントハンドラがコールバックをクリックしたら、ダイアログ
$('a.deletePheed').click(function(e) {
var id = $(this).parent('div.pheed-holder').attr('data-id');
Utility.dialog('Delete Pheed','Are sure you want to delete this pheed ?',
PheedModule.delete_pheed());
e.preventDefault();
});
をトリガするイベントハンドラですダイアログが表示される前に直ちに起動され、確認ダイアログでokをクリックすると実行されません。 私は何を正しくしていませんか?
1が終了し、次が始まると、それは明らかですので、コードの各行の末尾にセミコロンを使用してください。 – Blazemonger