Пример #1
0
domUtils.html2DOM = function(htmlStrs) {
    var eles = [];
    var DOC = self.document;
    var fragment = createSafeFragment();
    if (utils.isString(htmlStrs)) {
        htmlStrs = [htmlStrs];
    }
    utils.each(htmlStrs, function(htmlStr){
        if (!rhtml.test(htmlStr)) { //没有标签或特征直接生成textNode
            eles.push(DOC.createTextNode(htmlStr));
        } else {
            var tagName = (rtagName.exec(htmlStr) || ['', ''])[1],
                wrapper = wrapMap[tagName] || wrapMap._default;//包裹必要父类,否则innerHTML会忽略一些元素

            var div = DOC.createElement('div');
            div.innerHTML = wrapper[1] + htmlStr.replace(rselfClosedTag, "<$1></$2>") + wrapper[2];
            var ele = div.lastChild;

            var wrapperDeeps = wrapper[0];
            while(wrapperDeeps--) {
                ele = ele.lastChild;
            }
            //添加IE innerHTML会去掉前导空白的bug
            if (!support.leadingWhitespac && rleadingWhitespace.test(htmlStr)) {
                eles.push(DOC.createTextNode(rleadingWhitespace.exec(htmlStr)[0]));
            }
            //去掉IE<=7 为空table添加的tbody
            if (support.autoAddtbody && !rtbody.test(htmlStr) && isNodeType(ele, 'table')) {
                var child = ele.firstChild;
                while (child) {
                    if (isNodeType(child, 'tbody') && child.childNodes.length === 0) {
                        ele.removeChild(child);
                        break;
                    }
                    child = ele.nextSibling;
                }
            }
            eles.push(ele);

            for (var i = 0, len = eles.length; i < len; i++) {
                fragment.appendChild(eles[i]);
            }
        }
    });
    return fragment;
}
Пример #2
0
        indexOf: function ( bezierPoint ) {

            var index = -1;

            if ( this.points.indexOf ) {
                return this.points.indexOf( bezierPoint );
            } else {

                Utils.each( this.points, function ( point, i ) {

                    if ( point === bezierPoint ) {
                        index = i;
                        return false;
                    }

                } );

                return index;

            }

        },
Пример #3
0
        selectPoint: function ( index ) {

            var shapeGroup = this.pointShapes[ index ];

            // 重绘当前点
            this._redraw( this.getPointByIndex( index ) );

            // 清空其他点的
            Utils.each( this.pointShapes, function ( shape, i ) {

                if ( i !== index ) {

                    this._clearShapePoint( i );

                }

            }, this );

            // 更新辅助点
            if ( index > 0 ) {
                this._drawAssistPoint( index-1 );
            }

        },