2010-03-23 103 views
1

有沒有一種方法,我可以觸發一個onresize()事件我的窗口在JavaScript/jQuery中?觸發onresize事件的簡單/動態模態高度

我想:

$(window).resize(); 

,但似乎並沒有準確地按預期工作。簡單的jQuery插件爲您提供autoPosition您的模態窗口的選項。有時在IE中,模式會顯示一個偏離中心的位置,但只要我手動對窗口大小進行更改,它就能完美地居中。所以我想只是觸發onresize事件,所以這將自動以的簡單模式的autoPosition爲中心。

好吧,我想我的問題的一部分是,我試圖使模態動態的高度,如果內容將通過顯示或隱藏元素在模態中改變,那麼大小將分別爲。

我的繼承人模態調用:

$(selector).modal({ 
    //autoPosition: true, 
    //autoResize: true, 
    onShow: function(dlg) { 
     $(dlg.container).css('height', 'auto') // dynamic height based on content 
    }, 
    onOpen: function(dialog) { 
     dialog.overlay.fadeIn('slow', function() { 
      dialog.data.hide(); 
      dialog.container.fadeIn('slow', function() { 
       dialog.data.slideDown('slow'); 
      }); 
     }); 
    }, 
    onClose: function(dialog) { 
     dialog.data.fadeOut('slow', function() { 
      dialog.container.hide('slow', function() { 
       dialog.overlay.slideUp('slow', function() { 
        $.modal.close(); 
       }); 
      }); 
     }); 
    } 
}); 

如果我註釋掉昂秀屬性,東西再工作。所以我想也許這是問題的一部分。有沒有辦法根據內容動態調整模態,這不會造成這個問題?

使用simplemodal-1.3.4

回答

1

你的方法應該可行,但可能不會觸發你想要的simplemodal事件,例如:

$(window).resize(function() { 
    alert("resized"); 
}); 
$(window).resize(); //alerts "resized" 

用於您的特定問題的解決方案可能是:

$(window).trigger('resize.simplemodal'); 
+0

我看到這兩個火狐實際上是3.6和IE8。有時候模式會切斷下半部分,直到我手動調整大小,然後它完美地居中。 – Gabe 2010-03-23 21:01:00

+0

@Nick Craver,在那裏查看我更新的問題,我想我發現問題的一部分....也許你可以在更新部分闡明一些更多的信息。 – Gabe 2010-03-23 21:07:25

+0

@Nick Craver,是的,我試過觸發器,沒有任何效果。 – Gabe 2010-03-23 21:13:59

0

據我所知,你應該使用

$(window).resize(function() { 
    // your code 
}); 

沒有爲你工作?你到底在期待什麼?