0

このようなコンポーネントのマウント イベントでの dom 操作に jquery を使用しようとしています。

<my-tag>
    <p>hi</p>

    <script>

        this.on('mount',funciton() {
            $('.abc').hide();
        })
    </script>

</my-tag>

これにより、以下に示すエラーがスローされます

TypeError: Cannot read property 'toString' of undefined
at ServerResponse.writeHead (_http_server.js:189:44)

交換したら

$(".abc").hide()

console.log("test");

これは完全に機能します。なぜこれが起こっているのですか?

以下にバージョンの詳細を示します

暴動バージョン:

暴動-cli: 2.3.14 - https://github.com/riot/cli

暴動コンパイラ: 2.3.22 - https://github.com/riot/compiler

アップデート

この問題は、これをthis.on('mount')に配置した場合にのみ発生します

this.on('all')に配置してみましたが、正常に動作します。

4

1 に答える 1

-1

all有効なライアット イベントではないと思います。サーバーでjQueryを使用することに関しては、可能であればこれを避けます。コンポーネントで要素を隠している場合は、Riot を使用して CSS クラスを切り替える必要があります。この要素がコンポーネントの外部にある場合は、イベントを外部/グローバル オブザーバブル/pubsub ハンドラーに発行する必要があります。jQuery を使用する必要がある場合は、Node の require を介して jQuery をロードするか、DomJS や Cheerio などの他のソリューションを使用する必要があります。

于 2016-03-19T15:26:08.520 に答える