וואי.. הרבה זמן לא הייתי פה.. בכל מקרה יש לי בעיה עם מחלקה שאני עושה.. הנה המחלקה המלאה:
קוד:
var i = 0;
var floatWindow = function(weight, height, windowTitle)
{
//reset all values
i++;
this.weight = weight;
this.height = height;
this.windowId = "window_"+i;
this.windowTopId = "window_top_"+i;
this.windowTitle = windowTitle;
this.startClient = new Array();
//Making a design of window
var windowContent = "<div class='window_top' id='"+this.windowTopId+"'>"+windowTitle;
//coming soon...
//<img src='images/top_left.gif' align='left'>
//<img src='images/top_center.gif' class='topCenterImage'>
//<<div class='top_buttons'>
//<img class='minimizeButton' src='images/minimize.gif'>
//<img class='closeButton' src='images/close.gif'>
//<img src='images/top_right.gif'>
//</div>
windowContent += "</div>";
windowContent += "<div class='windowMiddle'>";
windowContent += "<div class='windowContent'>";
//Starting window content...
windowContent += "Testing..Testing..123";
//End of window content...
windowContent += "</div>";
windowContent += "</div>";
windowContent += "<div class='window_bottom'>";
//<img class="resizeImage" src="images/bottom_right.gif">
windowContent += "</div>";
//Creating the element...
var window = document.createElement("div");
window.id = this.windowId;
window.className = 'window';
window.innerHTML = windowContent;
document.body.appendChild(window);
this.windowObj = document.getElementById(this.windowId);
this.windowTopObj = document.getElementById(this.windowTopId);
//end of creating element...
//other functions...
function findX()
{
obj = this.windowObj;
var curleft = 0;
if(obj.offsetParent)
while(1)
{
curleft += obj.offsetLeft;
if(!obj.offsetParent)
break;
obj = obj.offsetParent;
}
else if(obj.x)
curleft += obj.x;
return curleft;
}
function findY()
{
obj = this.windowObj;
var curtop = 0;
if(obj.offsetParent)
while(1)
{
curtop += obj.offsetTop;
if(!obj.offsetParent)
break;
obj = obj.offsetParent;
}
else if(obj.y)
curtop += obj.y;
return curtop;
}
function updatePos(e)
{
if(document.all)
e = event;
//-------------------------
this.windowObj.style.left = this.startClient[x] + e.clientX - this.findX + 'px';
this.windowObj.style.top = this.startClient[y] + e.clientY - this.findY + 'px';
}
function stopMove()
{
this.onmousemove = null;
this.onmouseup = null;
}
function initMove(e)
{
if(document.all)
e = event;
this.startClient['x'] = e.clientX;
this.startClient['y'] = e.clientY;
this.windowTopObj.onmousemove = function () {this.updatePos()};
this.windowTopObj.onmouseup = this.stopMove;
}
// Making evant
this.windowTopObj.onmousedown = function () {this.initMove()};
}
הבעיה היא בשורה
קוד:
this.windowTopObj.onmousedown = function () {this.initMove()};
בשורה הזאת, אני רוצה ש- this יהיה מיוחס למחלקה, אבל במקרה הזה, this מיוחס ל-
שלו, מן הסתם, אין פונקצית initMove.. מה אפשר לעשות במקום ש- this יהיה מיוחס למחלקה?