这是我的代码:
$('#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'类的click事件(而不是使用jquery click方法)找到了解决方法,如下所示:
dialog.data.find('.close').unbind('click');
dialog.data.find('.close').bind('click',function(){$.modal.close();});
它有效!!!不幸的是,问题现在出现在我的“确定”按钮中。所以,我做了同样的解绑和绑定'.yes'类的click事件,如下所示:
dialog.data.find('.yes').unbind('click');
dialog.data.find('.yes').bind('click',
function() {
if ($.isFunction(callback)) callback.apply();
$.modal.close();
});
但是NOPE,它不工作..请帮帮我.. @ericmmartin,我希望你现在在网上...... huhu ..
新观察:如果我在类'.yes'之前放置类'.close'的解绑定/绑定,则问题出现在我的“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();
});
}
});
为什么为什么?!
答案 0 :(得分:1)
对于初学者来说,对于“X”,使用一类“simplemodal-close”而不仅仅是“close”。 SimpleModal将处理将close函数绑定到该元素的click事件。
其次,你不需要做unbind / bind。以下应该有效:
$('.yes', dialog.data[0]).click(function () {
if ($.isFunction(callback)) {
callback.apply();
}
$.modal.close();
});
如果没有,也许您的代码中还有其他内容......