【发布时间】:2014-04-10 12:27:47
【问题描述】:
我的问题是我的变量 flag 没有得到更新,我什至尝试使用 setTimeout 函数来做到这一点,但没有运气!
JavaScript
function confirmed(msg, okFtn, cnclFtn){
flag=false;
$(document.createElement('div')).html('\
<div style="max-width:250px;width:100%;">'+msg+'\
<p>\
<button value="yes" class="button small gradient blue left rnd5 cnfrm">OK</button>\
<button value="no" class="button small gradient blue left rnd5 cnfrm">Cancel</button>\
</p></div>')
.modal({
onShow: function (dialog) {
$('.simplemodal-close').remove();
$("#simplemodal-container").css({'height': 'auto','width':'auto'});
$(window).trigger('resize.simplemodal');
},
onClose: function(){
console.log(flag);
if(flag)
return true;
else
return false;
}
});
$('button.cnfrm').click(function(){
flag=true;
if ($(this).val() == 'yes') {
if(okFtn && typeof okFtn === 'function')
okFtn();
} else {
if(cnclFtn && typeof cnclFtn === 'function')
cnclFtn();
}
setTimeout(function(){$.modal.close();}, 1000);
});
}
这是我所说的Fiddle link。
由于变量没有设置,所以$.modal.close() 不能正常工作,我想要的只是当且仅当按钮OK 或cancel 被点击时才关闭模式对话框。
【问题讨论】:
-
哪个变量没有被设置?你的解释太少了。
-
你可以看到我的编辑
flag没有设置@EvanKnowles -
您是否尝试过专门将其声明为
var flag而不是使用隐式全局? -
是的,我也尝试过,但没有运气,然后我尝试使其全局化,看看它是否有效。 :(
标签: javascript jquery simplemodal