【问题标题】:transforming jQuery code into Dojo将 jQuery 代码转换为 Dojo
【发布时间】:2012-10-25 19:43:29
【问题描述】:

我在将 jQuery 代码转换为 Dojo 1.8 代码时遇到问题:

jQuery 代码:

$(".someclass").css('left', 0);

我在尝试使用 Dojo 执行此操作时遇到错误:

domStyle.set(dojo.query(".collapse"), "left", 0);

据说:Uncaught TypeError: Cannot set property 'left' of undefined 而如果我查询这个类并将其打印到控制台中,我会看到其中有 2 个元素。

我的问题是什么?

【问题讨论】:

    标签: javascript jquery css class dojo


    【解决方案1】:

    domStyle如果可以访问节点就可以使用

    domStyle.set(aDomNode, "left", 0);
    

    dojo.query(".collapse") 返回一个节点列表。以下应该有效:

    require(["dojo/query"], function(query) {
        query(".collapse").style('left', 0);
    });
    

    可以在此处找到有关 dojo 查询引擎的文档

    http://dojotoolkit.org/reference-guide/1.8/dojo/query.html

    http://dojotoolkit.org/reference-guide/1.8/dojo/NodeList-dom.html#dojo-nodelist-dom


    这是一个小提琴 http://jsfiddle.net/cswing/zYH6S/

    【讨论】:

    • 我使用这个并且有以下错误:未捕获的 TypeError: Object [object HTMLDivElement] has no method 'style'
    • collapse 它是一个列表,其中包含 2 个元素(带有 id 的图像)。
    • /me 秒这个答案。问题是,dojo.query(".collapse") 返回一个 NodeSet (dojo),而不是单个 DOMNode (native)。但是,为了完全符合 AMD 标准,请在 require 中添加 "dojo/NodeList-dom" 以断言使用 css-capeabilities 扩展 NodeList
    猜你喜欢
    • 1970-01-01
    • 2017-09-23
    • 2016-04-09
    • 2012-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-02
    • 2014-05-12
    相关资源
    最近更新 更多