2010-11-24 20 views
6

में ऑटो आकार एक jQuery यूआई संवाद इंटरनेट   एक्सप्लोरर में jQuery UI डायलॉग को मैं कैसे अनुकूलित कर सकता हूं?इंटरनेट एक्सप्लोरर

यह कोड फ़ायरफ़ॉक्स में ठीक है, लेकिन इंटरनेट   एक्सप्लोरर में नहीं है।

$('#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 तत्व एक DIV है।

+0

आप jQuery और jQuery UI का किस संस्करण का उपयोग कर रहे हैं? –

+0

jquery ui 1.8.5 JQuery 1.4.2 – Shahin

उत्तर

0

कृपया कोई , निम्न पंक्ति

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

आईई को उम्मीद है कि सभी विकल्प बंद कर दिया जा के अंत में जोड़ने के माध्यम से ,

चलो देखते हैं कि अगर काम कर देता है (इसकी शायद पूछने के लिए अच्छा आईई का कौन सा संस्करण इस पर असफल रहा है?)

+0

मैं अपनी उपरोक्त सिफारिश के आधार पर आईई 8 – Shahin

+0

किसी भी परिणाम का उपयोग कर रहा हूं? –

+0

हाँ JQuery संवाद सही ढंग से काम नहीं करता – Shahin

5

मुझे width: 'auto' के साथ निम्नलिखित "पैच" (आईई के लिए) का उपयोग कर jQuery UI संवाद का आकार बदल रहा है:

'ऑटो' लेकिन मैं तो बस नहीं रह सकता:
(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 लोड होते ही लोड ...

ध्यान दें कि टिकट http://dev.jqueryui.com/ticket/4437 के अनुसार हम चौड़ाई का उपयोग नहीं किया जाना चाहिए इसके बिना ... :)

+0

मैंने कोशिश की। मैंने jQuery-ui.js के बाद यह कोड जोड़ा है लेकिन यह अभी तक काम नहीं करता है :(IE8 – Shahin

+1

मुझे खेद है कि यह आपके लिए काम नहीं करता है - मैं लॉगिंग और 'dialog.innerWidth() 'के मूल्य की जांच करके शुरू करूंगा। 'fixDialogAutoWidth' में ... – kares