Flot を使用して HTML テーブルをチャートに変換する jquery プラグインを作成しました。HTML は XSLT から生成され、XSLT 内にプラグインを呼び出す次のコードがあります。このコードは、blah1 と blah2 の HTML div (各 div に 1 つ) に 2 つのグラフを並べて表示しようとします。
<div id="blah1" style="width:50%;height:100px;float:left;position:relative; padding: 0px">
<script language="javascript" defer="true">
<xsl:comment>
<![CDATA[$(document).ready($('#blah1').myPlugin()));]]>
</xsl:comment>
</script>
</div>
<div id="blah2" style="width:50%;height:100px;float:right;position:relative; padding: 0px">
<script type="javascript" defer="true">
<xsl:comment>
<![CDATA[$(document).ready($('#blah2').myPlugin()));]]>
</xsl:comment>
</script>
</div>
ただし、ブラウザで表示した場合の HTML の生成方法に問題があります。左側の div (blah1) は、キャンバス要素とすべて (およびブラウザーにグラフを表示) を含む HTML を正しく生成しましたが、右側の div (blah2) は次のように生成します。
<script type="javascript" defer="true">
<!--$(document).ready($('#blah2').myPlugin()); //-->
</script>
ここで何が起こっているのか分かりますか?1 つの div が機能し、もう 1 つの div が機能しないのはなぜですか? また、もう 1 つの奇妙な点は、blah1 に表示されるチャートが、実際には blah2 に表示されるはずだったものであることです。blah2 チャートは、blah1 のコードによって描画されたチャートを上書きします。blah 2 jquery 呼び出しをコメントアウトすると、blah1 div は予想されるグラフを正しく表示します。