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>
  • 相关阅读:
    Leetcode 171. Excel Sheet Column Number
    Leetcode 206 Reverse Linked List
    Leetcode 147. Insertion Sort List
    小明一家人过桥
    Leetcode 125. Valid Palindrome
    Leetcode 237. Delete Node in a Linked List
    Leetcode 167 Two Sum II
    张老师的生日
    Leetcode 27. Remove Element
    Leetcode 283. Move Zeroes
  • 原文地址:https://www.cnblogs.com/lucika/p/9346529.html
Copyright © 2011-2022 走看看