这是我的代码:
$('#alertInfo').modal({
close :false,
overlayId :'confirmModalOverlay',
containerId :'confirmModalContainer',
onShow : function(dialog) {
dialog.data.find('.message').append(message);
dialog.data.find('.yes').click(function(){
if ($.isFunction(callback)) callback.apply();
$.modal.close();
});
dialog.data.find('.close').click(function(){
$.modal.close();
});
}
});
基本上,这是一个对话框,我调用它来显示一条警告消息,其中有一个“X”按钮(带有“关闭”类)和一个“确定”按钮(带有“是”类)。
问题出现在 IE7 中。当我每次调用此对话框并使用我的“X”按钮将其关闭时,我的“X”按钮在我第三次调用它时不再起作用(是的第三次!)。但是,如果我使用“确定”按钮关闭对话框,无论我调用多少次它都可以正常工作。
我想我通过解除绑定和绑定'.close'类的点击事件(而不是使用jquery click方法)找到了一种解决方法,如下所示:
dialog.data.find('.close').unbind('click');
dialog.data.find('.close').bind('click',function(){$.modal.close();});
它奏效了!!!然而,不幸的是,问题现在出现在我的“确定”按钮中。所以,我做了同样的解除绑定和绑定'.yes'类的点击事件,如下:
dialog.data.find('.yes').unbind('click');
dialog.data.find('.yes').bind('click',
function() {
if ($.isFunction(callback)) callback.apply();
$.modal.close();
});
但是不,它不起作用..请帮助我.. @ericmmartin,我希望你现在在线.. 呵呵..
新观察:如果我将类 '.close' 的解除绑定/绑定放在类 '.yes' 之前,问题会出现在我的“X”(使用类 '.close')按钮中。如下所示:
$('#alertInfo').modal({
close :false,
overlayId :'confirmModalOverlay',
containerId :'confirmModalContainer',
onShow : function(dialog) {
dialog.data.find('.message').append(message);
dialog.data.find('.close').unbind('click');
dialog.data.find('.close').bind('click',
function(){
$.modal.close();
});
dialog.data.find('.yes').unbind('click');
dialog.data.find('.yes').bind('click',
function(){
if ($.isFunction(callback)) callback.apply();
$.modal.close();
});
}
});
为什么哦为什么?!