首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Knockout Extender中使用JQuery函数

如何在Knockout Extender中使用JQuery函数
EN

Stack Overflow用户
提问于 2012-12-11 12:22:15
回答 1查看 300关注 0票数 0

如何在自定义敲出扩展器中使用jQuery函数。下面是一个从自定义扩展器向knockout目标添加类的示例。

代码语言:javascript
复制
ko.extenders.addClass = function(target, option) {
    if (option == true)
    {
        target.subscribe(function(newValue) {
            $(this.target).addClass('new_class');
        });
    }
    return target;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-11 14:53:38

将普通的dirty-flag与css绑定结合起来。

代码语言:javascript
复制
ko.dirtyFlag = function(root) {
    var result = function() {}, // A function will not get serialized to JSON
        _initialState = ko.observable(ko.toJSON(root));

    result.isDirty = ko.dependentObservable(function() {
        return _initialState() !== ko.toJSON(root);
    });

    result.reset = function() {
        _initialState(ko.toJSON(root));
    };

    return result;
};

function ViewModel() {
    // Normal properties
    this.someProperty = ko.observable("initial value");

    // Dirty-flag for this object.
    this.dirtyFlag = ko.dirtyFlag(this);
}
代码语言:javascript
复制
<div data-bind="css: { 'new_class': dirtyFlag.isDirty }"></div>

如果只想跟踪属性的一个子集,还可以传递一个可观察对象或一个可观察对象数组。

代码语言:javascript
复制
this.dirtyFlag = ko.dirtyFlag(this.someProperty);

http://jsfiddle.net/MizardX/7esdy/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13813596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档