Skip to content

Commit

Permalink
Merge branch 'develop' of 192.168.12.139:kola-js into develop
Browse files Browse the repository at this point in the history
Conflicts:
	src/kola/html/ElementCore.js
  • Loading branch information
guanyuxin committed Apr 13, 2012
2 parents dde2e0f + ca63292 commit c5c5295
Show file tree
Hide file tree
Showing 6 changed files with 99 additions and 19 deletions.
17 changes: 17 additions & 0 deletions .project
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>kola-js</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>com.aptana.ide.core.unifiedBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.aptana.projects.webnature</nature>
</natures>
</projectDescription>
24 changes: 24 additions & 0 deletions src/kola/html/Content.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,30 @@ function(KElement,A,F,Browser,KEvent){
return ret;
},

/**
* 获取节点中的outerHTML
* @return html字符串
* @type String
*/
/**
* 设置节点中的outerHTML
* @param {String} value 要设置的html字符串
* @return 当前的Element对象
* @type kola.html.Element
*/
outer: function(value) {
// TODO: 这部分的代码需要重写
var el = this[0];

// 如果是获取值,那就直接调用方法
if ( typeof value == 'undefined' ) {
return el.outerHTML;
} else {
el.outerHTML = value;
return this;
}
},

/**
* 获取节点的text内容
* @return text内容
Expand Down
8 changes: 4 additions & 4 deletions src/kola/html/ElementCore.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* @fileOverview kola.html.ElementCore dom元素的封装
* @fileOverview kola.html.ElementCore dom元素的封装
* @author Jady Yang Yuxin Guan
* @version 2.0.0
*/
Expand Down Expand Up @@ -38,12 +38,12 @@ function(C, O, Dispatcher, Selector){
nodes = nodes.concat(Selector(selector, context[i]));
}
}
return new ElementCore(nodes);
return new this(nodes);
}else{
var nodes=ElementCore.util.toElements(selector);
}
if(nodes)
return new ElementCore(nodes);
return new this(nodes);
return null;
},
_init:function(elements){
Expand Down Expand Up @@ -108,7 +108,7 @@ function(C, O, Dispatcher, Selector){
each: function( fn ) {
// 使用迭代器循环每个元素
for ( var i = 0, il = this.length; i < il; i++ ) {
fn.call( this.constructor( this[i] ), i );
fn.call( this, this.constructor( this[i] ), i );
}
return this;
},
Expand Down
18 changes: 14 additions & 4 deletions src/kola/html/Event.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ kola('kola.html.Event', [
'kola.event.Dispatcher'
],function(E,A,Dispatcher){
var domEventType='click,mouseover,mouseout,mouseenter,mouseleave,mouseup,mousedown,mousemove,keyup,keydown,keypress,focus,blur,submit'
var out_cache=[];
var DomEvent={
/**
* 监听事件
Expand All @@ -23,10 +24,19 @@ kola('kola.html.Event', [
return this;
},
onout: function(name, listenerfn, option) {
E.on(document, name, function(e){
if(e.target.closest(this._elements()))
return
listenerfn.call(this, e, option);
var _this=this;
var f=function(e){
if(K(e.target).closest(_this._elements).length==0)
listenerfn.call(this, e, option);
}
E.on(document, name, ,option);
return this;
},
offout: function(name, listenerfn, option) {
var _this=this;
E.off(document, name, function(e){
if(K(e.target).closest(_this._elements).length==0)
listenerfn.call(this, e, option);
},option);
return this;
},
Expand Down
2 changes: 1 addition & 1 deletion src/kola/html/Form.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ function( KolaArray, Event ) {

// 循环获得所有控件
for ( var i = 0, items = [ 'input', 'select', 'textarea' ], il = items.length; i < il; i++ ) {
if ( results = this.down( items[ i ] ) ) {
if ( results = this.find( items[ i ] ) ) {
elements = elements.concat( results.elements() );
}
}
Expand Down
49 changes: 39 additions & 10 deletions src/kola/html/Traveller.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,39 @@ function(O,KElement,A,Selector){
var Traveller={
/*
TODO:
add()
remove()
first()
last()
index()
*/
/**
给element增加一些元素
@param content string,element,kolaElement
*/
add:function(content){
var elements=KElement.util.toElements(content);
for(var i=0,il=elements.length;i<il;i++){
for(var j=0,jl=this.length;j<jl;j++){
if(this[j]==elements[i])
break;
}
if(j==jl){
this[length]=elements[i];
this._elements[length]=elements[i];
this.length++;
}
}
},
index:function(selector){
var elem=this[0];
if(!elem)
return -1;
if(selector)
return A.indexOf(KElement(elem.parentNode).children(selector),elem);
else
return A.indexOf(elem.parentNode.children,elem);
},
filter:function(selector){
return new KElement(Selector.filter(selector,this._elements));
},
Expand Down Expand Up @@ -39,15 +66,15 @@ function(O,KElement,A,Selector){
*/
closest:function(element,selector){
//如果是选择器,则找到符合选择器的元素
if(O.isString()){
if(O.isString(selector)){
while (element.nodeType == 1) {
if(Selector.matchesSelector(element,selector))
return element;
element = element.parentNode
}
}else{//如果是数组,则从数组中找
while (element.nodeType == 1) {
if(A.indexOf(selector,element))
if(A.indexOf(selector,element)!=-1)
return element;
element = element.parentNode
}
Expand All @@ -56,24 +83,25 @@ function(O,KElement,A,Selector){
/**
得到符合selector的子元素
*/
children:function(element,selector){
return Selector(selector,element.children)
children:function(element, selector){
return Selector.filter(selector,element.children)
},
/**
得到子树上符合selector的元素
*/
find:function(element,selector){
find:function(element, selector){
return Selector(selector,element).concat(Selector(selector,[element]));
},
/**
* 拿到每一个元素的前一个兄弟节点
* @return 包含了所有节点的Element对象
* @type kola.html.Element
*/
prev:function(element){
prev:function(element, selector){
while ( element = element.previousSibling ) {
if ( element.nodeType == 1 ) {
return element;
if(!selector || Selector.matchesSelector(element,selector))
return element;
}
}
},
Expand All @@ -82,10 +110,11 @@ function(O,KElement,A,Selector){
* @return 包含了所有节点的Element对象
* @type kola.html.Element
*/
next:function(element){
next:function(element, selector){
while ( element = element.nextSibling ) {
if ( element.nodeType == 1 ) {
return element;
if(!selector || Selector.matchesSelector(element,selector))
return element;
}
}
},
Expand Down

0 comments on commit c5c5295

Please sign in to comment.