2

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 は予想されるグラフを正しく表示します。

4

2 に答える 2

0

みんなありがとう、私は問題を理解しました... jqueryカスタムプラグイン内でdivの値を「blah1」にハードコードしていたので、プラグインコードを呼び出したdivが毎回同じdivに適用されました。 4時間の睡眠の後、私には明らかになりました..(睡眠不足で何ができるのか信じられません)

于 2013-02-14T13:15:07.583 に答える
0

@PabloPozoが言ったように、言語属性が減価償却されているように見えるので、両方のスクリプトタグを

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

</script>
于 2013-02-14T11:05:49.280 に答える