2

我编写了一个 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 会正确显示预期的图表。

4

2 回答 2

0

正如@PabloPozo 所说,看起来语言属性已被贬值,将您的脚本标签更改为

<script type="text/javascript" defer="true">

</script>
于 2013-02-14T11:05:49.280 回答
0

谢谢大家,我发现了问题......我在jquery自定义插件中将div的值硬编码为“blah1”,所以无论我调用什么div,插件代码每次都应用于同一个div。这个睡了 4 个小时后对我来说变得很明显..(我不敢相信睡眠剥夺会让你做什么)

于 2013-02-14T13:15:07.583 回答