2010-05-28 31 views
1

这里是我的代码:simplemodal点击事件停止在IE7工作

$('#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”按钮不起作用(YES在第三次!)。但是,如果我使用“确定”按钮关闭对话框,无论多次打电话,它都可以正常工作。

我以为我找到了一个解决方法通过(使用jQuery click方法来代替)的“.close”类的解除绑定和绑定我的单击事件,如下图所示:

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(); 
}); 

但不,这是行不通的..请帮助我.. @ericmmartin,我希望你现在在线.. huhu ..

新观察:如果我在类'.yes'之前放置类'.close'的绑定/绑定,问题就出现在我的“X”(带类)中。关闭')按钮..如下:

$('#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(); 
     }); 
    } 
}); 

为什么OH为什么?

回答

1

对于初学者来说,对于“X”使用一类“simplemodal-close”而不是“close”。 SimpleModal将处理将关闭函数绑定到该元素的单击事件。

其次,你不应该需要做解除绑定。下面应该工作:

$('.yes', dialog.data[0]).click(function() { 
    if ($.isFunction(callback)) { 
     callback.apply(); 
    } 
    $.modal.close(); 
}); 

如果没有,也许还有别的东西在你的代码怎么回事...

+0

谢谢大家的响应..我一直在使用“simplemodal关闭”类已经尝试过之前,但没有得到它的工作..一定是真的有什么问题,我的代码,但还没有发现问题呢..无论如何,我会尽力实现你刚才提供的那个..谢谢一堆! – prettynerd 2010-05-29 23:47:22