我编写了一个 jquery 插件,它使用 Flot 将 HTML 表格转换为图表。HTML 是从 XSLT 生成的,在 XSLT 中我有以下代码来调用我的插件。此代码尝试在 blah1 和 blah2 HTML div 中并排显示两个图表(每个 div 中一个):
<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>
知道这里发生了什么吗?为什么一个 div 可以工作,而另一个不能..?另一个奇怪的事情是出现在 blah1 中的图表实际上是应该出现在 blah2 中的图表。blah2 图表覆盖了 blah1 中代码绘制的图表。如果我注释掉 blah 2 jquery 调用,那么 blah1 div 会正确显示预期的图表。