zoukankan      html  css  js  c++  java
  • knockout为绑定元素生成id

    knockout 提供生成了uniqueName的方法,但没有提供生成Id的方法。

    感谢stackoverflow提供的思路与方法。

    下面是uniqueName的实现方法。

    ko.bindingHandlers['uniqueName'] = {
        'init': function (element, valueAccessor) {
            if (valueAccessor()) {
                element.name = "ko_unique_" + (++ko.bindingHandlers['uniqueName'].currentIndex);
    
                // Workaround IE 6 issue - http://www.matts411.com/post/setting_the_name_attribute_in_ie_dom/
                if (ko.utils.isIe6)
                    element.mergeAttributes(document.createElement("<input name='" + element.name + "'/>"), false);
            }
        }
    };
    ko.bindingHandlers['uniqueName'].currentIndex = 0;

    绑定

    <input type="checkbox"  data-bind="uniqueName:true" />

    对于Id

    ko.bindingHandlers['uniqueId'] = {
                    'init': function (element, valueAccessor) {
                        if (valueAccessor()) {
                            element.id = "ko_unique_" + (++ko.bindingHandlers['uniqueId'].currentIndex);
                        }
                    }
                };
    <input type="checkbox"  data-bind="uniqueId:true" />

    对于label的for属性

    ko.bindingHandlers['foruniqueId'] = {
                    'init': function (element, valueAccessor) {
                        if (valueAccessor()) {
                            element.setAttribute('for', "ko_unique_" + (++ko.bindingHandlers['foruniqueId'].currentIndex));
                        }
                    }
                };

    html元素

    <label data-bind="foruniqueId:true" ></label>
  • 相关阅读:
    网络和笔记本
    病毒惹的祸
    Virtual MachineVmware(2)
    VS2010 工具箱装载出错
    Virtual Machine VmWare(1)
    javascript写计数器
    代码自动生成操作
    用live writer写博客
    上海招聘.net程序员
    将用户导入到membership
  • 原文地址:https://www.cnblogs.com/lucika/p/9346529.html
Copyright © 2011-2022 走看看