2010-05-28 54 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