2011-08-09 76 views
0

我正在構建一個網頁,打開一個jquery-ui對話框,其中填充了來自AJAx調用的一些數據。其中一個數字用於繪製Raphael彩色矩形。 操作順序是IE8無法正確呈現一個jQuery UI對話框中的Raphaeljs圖像

  1. Ajax調用
  2. 填表與DOM調用
  3. 平局Raphaeljs數字
  4. 顯示jQuery的用戶界面對話框

下面的代碼:

function onSelect_manuale(feature) { 
    if (window.XMLHttpRequest){ // code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp2=new XMLHttpRequest(); 
    } 
    else{ // code for IE6, IE5 
    xmlhttp2=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp2.onreadystatechange=function(){ 
    if (xmlhttp2.readyState==4 && xmlhttp2.status==200){ 
     obj = jQuery.parseJSON(xmlhttp2.responseText); 

     document.getElementById("valMed").value = obj.valMed; 
     disegnaBarraCampo(obj.valMed, 'raphaelImageDiv'); 
     $("#dialog-manuale").dialog('open'); 

    } 
    } 
    xmlhttp2.open("GET","jGetData_manuale.php?id="+feature.data.idMisura,true); 
    xmlhttp2.send(); 
} 

function disegnaBarraCampo(field_value, target_field) { 
    document.getElementById(target_field).innerHTML = ''; 
    var paper = Raphael(target_field, 300, 100); 

    var barrettaVerde = paper.rect(field_value, 10, 100, 100, 4); 
    barrettaVerde.attr({ 
    fill:'#00ff00', 
    'stroke-width':0 
    }); 
} 

隨着Firefox或Chrome的一切正常工作。 IE8不會正確渲染Raphael圖:它顯示沒有填充顏色的矩形和1px黑色邊框。

同樣的拉斐爾代碼在IE8中正確呈現圖形,如果我把代碼放在對話框外面,所以我認爲這是Raphael + iquery-ui對話框的一種問題。

任何提示?

感謝

阿爾貝託

回答

1

這裏的解決方案!

執行Raphael繪圖代碼 jquery-ui-dialog打開。

  1. Ajax調用
  2. 填充與DOM的形式呼籲
  3. 顯示jQuery的UI的對話框
  4. 平局拉斐爾圖