En un codigo que tengo creo un objeto y la variable this en
cualquier parte refiere al objeto en cuestion, asi es:
Código HTML:
var dragobject={ z: 0, x: 0, y: 0, offsetx : null, offsety : null, targetobj : null, dragapproved : 0, cclass: null, //////////////////////////////////////////////////////// initialize:function(c){ dragobject.cclass = c; document.onmousedown = this.drag; document.onmouseup = function() { this.dragapproved=0 } }, //////////////////////////////////////////////////////// drag:function(e){ var evtobj = window.event ? window.event : e; this.targetobj = window.event ? event.srcElement : e.target; if (this.targetobj.className==dragobject.cclass || this.targetobj.className.indexOf(dragobject.cclass) != -1) { this.dragapproved = 1; if (isNaN(parseInt(this.targetobj.style.left))){this.targetobj.style.left=0} if (isNaN(parseInt(this.targetobj.style.top))){this.targetobj.style.top=0} this.offsetx=parseInt(this.targetobj.style.left); this.offsety=parseInt(this.targetobj.style.top); this.x=evtobj.clientX; this.y=evtobj.clientY; if (evtobj.preventDefault) evtobj.preventDefault() document.onmousemove=dragobject.moveit; } }, //************************************************ moveit:function(e){ var evtobj=window.event? window.event : e; if (this.dragapproved==1){ this.targetobj.style.left=this.offsetx+evtobj.clientX-this.x+"px"; this.targetobj.style.top=this.offsety+evtobj.clientY-this.y+"px"; return false; } } }
y el valor 'this' esta definido como el valor del objeto.
Pero he estado haciendo otro programa que se asemeja y en este
caso no reconoce el valor de 'this'.
Alguien me sabe explicar en que casos y el funcionamiento exacto de
estos valores en manejadores de eventos y demas. ....
Gracias muchas.