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>
  • 相关阅读:
    umask设置导致的weblogic中的应用上传的文件没有权限打开
    顺序表查找及其优化(Java)
    前端能力要求
    CSS动画:旋转卡片效果
    CSS居中
    http服务器与https服务器的区别
    phpCURL抓取网页内容
    Node.js概述
    jQuery源码分析
    JavaScript学习书签
  • 原文地址:https://www.cnblogs.com/lucika/p/9346529.html
Copyright © 2011-2022 走看看