【问题标题】:jQuery chaining: Can everything be chained? When can we not chain?jQuery 链接:一切都可以链接吗?什么时候可以不上链?
【发布时间】:2011-03-31 20:02:05
【问题描述】:

我知道并不是所有的 jQuery 函数都可以链接在一起。是否有经验法则。我们什么时候不能将两个函数链接在一起。

【问题讨论】:

    标签: jquery chaining


    【解决方案1】:

    您可以在函数返回“jQuery 对象”时进行链接。

    例如,.css(property, value) 可以被链接,因为文档说它返回 jQuery:

    .height() cannot,因为它返回一个整数。

    通常,返回“jQuery 对象”的函数是那些通常不会“返回值”的函数,例如setter 方法(.css(prop, val).addClass())、事件绑定器(.click(handler))等

    (当然遍历方法(.parent().find()等)也可以链接,但返回的对象会与输入不同。)

    【讨论】:

    【解决方案2】:

    你不能链接一个返回 jQuery 对象以外的东西的函数。比如attr()用一个参数来获取一个属性的值。

    【讨论】:

      【解决方案3】:

      区分的方法是具有副作用的函数通常返回 jquery,并且可以链接到具有实际返回的函数(如.text())不能。

      【讨论】:

        【解决方案4】:

        如果他们在插件中这样做:

        return this; //<--jquery object
        

        最后你可以用其他插件来改变它:-)

        【讨论】:

        • 过滤器通常不会返回原始对象。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多