0

我正在尝试使用 jquery 对这样的组件的挂载事件进行 dom 操作。

<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是一个有效的 Riot 事件。至于在服务器上使用 jQuery,我会尽可能避免这种情况。如果你在你的组件中隐藏了一个元素,那么你应该使用 Riot 来切换一个 CSS 类。如果此元素在您的组件之外,您应该将事件发送到外部/全局 observable/pubsub 处理程序。如果你必须使用 jQuery,你必须确保通过 Node 的 require 加载 jQuery,或者使用其他解决方案,如 DomJS 或 Cheerio。

于 2016-03-19T15:26:08.520 回答