2010-11-24 18 views
6

Internet'te jQuery UI iletişim kutusunu otomatik olarak nasıl otomatikleştirebilirim   Explorer?Otomatik boyut Internet Explorer'da jQuery UI iletişim kutusu

Bu kod Firefox'ta Tamam, ancak Internet'te   Explorer'da değil.

$('#dialog2').dialog({ 
    autoResize: true, 
    show: "clip", 
    hide: "clip", 
    height: 'auto', 
    width: 'auto', 
    autoOpen: false, 
    modal: true, 
    position: 'center', 
    draggable: true, 

    open: function (type, data) { 
     $(this).parent().appendTo("form"); 

    }, 
    buttons: { "close": function() { $(this).dialog("close"); document.getElementById("<%=btnnew.ClientID%>").click(); } } 
}); 

HTML elementim bir DIV'dur.

+0

jQuery ve jQuery UI'nin hangi sürümünü kullanıyorsunuz? –

+0

jquery ui 1.8.5 JQuery 1.4.2 – Shahin

cevap

0

ilk (yani hile yok Bakalım ,

aracılığıyla

buttons: { "close": function() { $(this).dialog("close"); document.getElementById("<%=btnnew.ClientID%>").click(); } } 

IE tüm seçenekler kapalı olmasını beklediğini şu satırın sonunda bir , ekleyiniz onun sormak muhtemelen iyi Hangi sürüm IE üzerinde başarısız oluyor?)

+0

IE 8 – Shahin

+0

yukarıdaki tavsiyemi temel alan herhangi bir sonuç kullanıyorum? –

+0

yes JQuery İletişim kutusu doğru çalışmıyor – Shahin

5

Aşağıdaki "yama" (IE için) kullanarak width: 'auto' boyutlandırma jQuery UI iletişim kuralı ile başarı yaşıyorum:

'Otomatik' ama sadece yaşayamazdım:
(function($) { 
var fixDialogAutoWidth = $.noop; 
if ($.browser.msie) { 
    fixDialogAutoWidth = function(content) { 
     var dialog = $(content).parent('.ui-dialog'); 
     var width = dialog.innerWidth(); 
     if (width) dialog.css('width', width); 
    } 
} 

var _init = $.ui.dialog.prototype._init; 
$.ui.dialog.prototype._init = function() { 
    // IE magick: (width: 'auto' not working correctly) : 
    // http://dev.jqueryui.com/ticket/4437 
    if (this.options.width == 'auto') { 
     var open = this.options.open; 
     this.options.open = function() { 
      fixDialogAutoWidth(this); 
      if (open) open.apply(this); 
     } 
    } 
    // yet another bug options.hide: 'drop' does not work 
    // in IE http://dev.jqueryui.com/ticket/5615 
    if ($.browser.msie && this.options.hide == 'drop') { 
     this.options.hide = 'fold'; 
    } 
    return _init.apply(this); // calls open() if autoOpen 
}; 
})(jQuery); 

jquery-ui.js yüklendikten sonra sadece ... bilet http://dev.jqueryui.com/ticket/4437 göre biz genişliğini kullanarak olmamalıdır

Not Bu kodu yüklemek o olmadan ... :)

+0

Denedim. jQuery-ui.js sonra bu kodu ekledim ama henüz çalışmıyor :(. IE8 – Shahin

+1

Ben u için işe yaramadı üzgünüm - ben günlüğü ve "dialog.innerWidth()" değerini kontrol ederek başlayacağım fixDialogAutoWidth içinde ... – kares