代码如下:gg就是个空的类 但是这么写就出错 完全不明白
各位大虾,指教下吧....
<body>
<div id='ss' style=" position:absolute;left:0px; top:0px;"><img src="http://img1.qq.com/news/pics/17409/17409846.jpg"></div>
<script>
function $(Id){return document.getElementById(Id)};
function addListener(element,e,fn){ element.addEventListener?element.addEventListener(e,fn,false):element.attachEvent("on" + e,fn)};
function removeListener(element,e,fn){ element.removeEventListener?element.removeEventListener(e,fn,false):element.detachEvent("on" + e,fn)};
function create(elm,parent,fn){var element = document.createElement(elm);if(fn)fn(element);parent.appendChild(element);};
var extend = function()
{
var args = arguments;
if(!args[1])args = [this,args[0]];
for(var property in args[1])args[0][property] = args[1][property];
return args[0];
};
var Class = function(properties){
var _class = function(){return (arguments[0] !== null && this.initialize && typeof(this.initialize) == 'function') ? this.initialize.apply(this, arguments) : this;};
_class.prototype = properties;
return _class;
};
var dd = new Class({
initialize: function(elm){
var self = this;
this.elm = elm;
addListener(this.elm,'mousedown',function(event){self.xx(event||window.event)})
},
xx:function(e){
alert(e.clientX)
}
})
dd.Getdd=function(elm,arg){
return extend(new dd(elm),arg||{})
}
var gg =new Class({})
var ss_dd= dd.Getdd($('ss'))
//gg.apply(ss_dd) //这个地方显示出来就会出错了</script>
</body>
各位大虾,指教下吧....
<body>
<div id='ss' style=" position:absolute;left:0px; top:0px;"><img src="http://img1.qq.com/news/pics/17409/17409846.jpg"></div>
<script>
function $(Id){return document.getElementById(Id)};
function addListener(element,e,fn){ element.addEventListener?element.addEventListener(e,fn,false):element.attachEvent("on" + e,fn)};
function removeListener(element,e,fn){ element.removeEventListener?element.removeEventListener(e,fn,false):element.detachEvent("on" + e,fn)};
function create(elm,parent,fn){var element = document.createElement(elm);if(fn)fn(element);parent.appendChild(element);};
var extend = function()
{
var args = arguments;
if(!args[1])args = [this,args[0]];
for(var property in args[1])args[0][property] = args[1][property];
return args[0];
};
var Class = function(properties){
var _class = function(){return (arguments[0] !== null && this.initialize && typeof(this.initialize) == 'function') ? this.initialize.apply(this, arguments) : this;};
_class.prototype = properties;
return _class;
};
var dd = new Class({
initialize: function(elm){
var self = this;
this.elm = elm;
addListener(this.elm,'mousedown',function(event){self.xx(event||window.event)})
},
xx:function(e){
alert(e.clientX)
}
})
dd.Getdd=function(elm,arg){
return extend(new dd(elm),arg||{})
}
var gg =new Class({})
var ss_dd= dd.Getdd($('ss'))
//gg.apply(ss_dd) //这个地方显示出来就会出错了</script>
</body>
var _class = function(){return (arguments[0] !== null && this.initialize && typeof(this.initialize) == 'function') ? this.initialize.apply(this, arguments) : this;};
_class.prototype = properties;
return _class;
};
错在红色的地方.
gg.apply(ss_dd.elm); 这样好像也可以了
to 2楼 这样 无意义啊
<div id='ss' style=" position:absolute;left:0px; top:0px;"><img src="http://img1.qq.com/news/pics/17409/17409846.jpg"></div>
<script>
function $(Id){return document.getElementById(Id)};
function addListener(element,e,fn){ element.addEventListener?element.addEventListener(e,fn,false):element.attachEvent("on" + e,fn)};
function removeListener(element,e,fn){ element.removeEventListener?element.removeEventListener(e,fn,false):element.detachEvent("on" + e,fn)};
function create(elm,parent,fn){var element = document.createElement(elm);if(fn)fn(element);parent.appendChild(element);};
var extend = function()
{
var args = arguments;
if(!args[1])args = [this,args[0]];
for(var property in args[1])args[0][property] = args[1][property];
return args[0];
};
var Class = function(properties){
var _class = function(){return (arguments[0] != null && this.initialize && typeof(this.initialize) == 'function') ? this.initialize.apply(this, arguments) : this;};
_class.prototype = properties;
return _class;
};
var dd = new Class({
initialize: function(elm){
var self = this;
this.elm = elm;
addListener(this.elm,'mousedown',function(event){self.xx(event||window.event)})
},
xx:function(e){
alert(e.clientX)
}
})
dd.Getdd=function(elm,arg){
return extend(new dd(elm),arg||{})
}
var gg =new Class({})
var ss_dd= dd.Getdd($('ss'))
gg.apply(ss_dd) //这个地方显示出来就会出错了</script>
</body>就是去掉多余的等号或者感叹号...
不过我不知道你有啥用...
可是把他改成这样:
var gg =new Class({
a:'a',
b:function(){alert('a')}
})然后在便利ss_dd
for(var i in ss_dd)
alert(i+' '+ss_dd[i])
并没有扩展到a里面的属性和方法了
这是为啥?
a:'a',
b:function(){alert('a')}
}] ) 我只看了个大概...有点长...