2011-08-09 7 views
0

私は、AJAx呼び出しからのデータが入ったフォームでjquery-uiダイアログを開くWebページを構築しています。これらの数値の1つは、ラファエロ色の塗りつぶし矩形を描画するために使用されます。 DOMを呼び出すと 操作順序はIE8はjquery-uiダイアログの中にRaphaeljsイメージを正しくレンダリングしません

  1. AJAX呼び出し
  2. フィル形式で
  3. ドローRaphaeljsフィギュア
  4. ショーjqueryの-UIダイアログここ

はコードです:

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の黒い境界線がある四角形が表示されます。

私はコードをダイアログの外に置くと、同じRaphaelコードがIE8で図形を正しくレンダリングするので、Raphael + iquery-uiダイアログの問題の一種だと思います。

ヒント?

おかげ

アルベルト

答えて

1

ここソリューションです!

jquery-ui-dialog openの後に、ラファエルの描画コードを実行します。 DOMと

  1. AJAX呼び出し
  2. フィルフォームは
  3. ショーjqueryの-UI-ダイアログ
  4. ドローラファエル・フィギュア
を呼び出します