请教js熟手们一个关于this 指向发生转变,导致对象内部属性取不到的问题
html:
<div id="demoDrag"  onmousedown="a.start(event,this)"></div>
js:
<script type="text/javascript">
function tuodong(){
     this.start=function(e, el){
	   this.X=e.clientX
	   this.Y=e.clientY
	   document.mousemove=this.draging     
     }
     this.draging=function(e){
           alert(this.X)         
     }
}
a=new tuodong()
</script>
我发现在调用this.draging方法时,this.X此时已经取不到值了,分析了一下原来是document.mousemove原因,this这是指的是document,而不是当前对象了,请问这种情况我该怎么取得this.X的值,难道要把X设置成全局变量吗?
------解决方案--------------------this.draging=function(e){
var a=new start();
  alert(a.X)  
 }
试试这样
------解决方案--------------------<script type="text/javascript">
function tuodong(){
 this.start=function(e, el){
this.X=e.clientX
this.Y=e.clientY
var thisX = this.X;
document.mousemove=this.draging 
 }
 this.draging=function(e){
 alert(thisX) 
 }
}
a=new tuodong()
</script>
------解决方案--------------------
this.draging=function(e){
 alert(this.X)//this指向的是document  
 }
试试
JScript code
<script type="text/javascript">
function tuodong(){
  var self = this;
  this.start=function(e, el){
this.X=e.clientX
this.Y=e.clientY
var thisX = this.X;
document.mousemove=this.draging   
  }
  this.draging=function(e){
  alert(self.X);   
  }
}
a=new tuodong()
</script>
------解决方案--------------------
js里的this总是指向当前对象。