ถามเรื่อง Class ใน Javascript มัน Error ตอนเอา Method มาใช้
เงียบเลยไม่มีใครทำได้ เลยหรอครับ
Date :
2011-07-08 10:30:53
By :
beandnam
ไม่รู้ว่าความต้องการที่แท้จริงคืออะไร
แต่ถ้าต้องการแค่ตำแหน่ง Mouse ก็อย่างนี้ได้ไหม
งงว่าทำไมต้องสร้าง prototype
Code (JavaScript)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script language="javascript" type="text/javascript">
function whereami(sender, e) {
var st = "Sender: " + sender.tagName;
st += "\nclient: " + e.clientX + ", " + e.clientY;
st += "\nscreen: " + e.screenX + ", " + e.screenY;
alert(st);
}
</script>
<style>
body
{
border:thin solid blue;
}
</style>
</head>
<body onclick="whereami(this,event)">
<form id="form1" runat="server">
<div>
Please click inside this box only.<br />
<input type="button" id="btnTest" onclick="whereami(this,event)" value="Test"/>
</div>
</form>
</body>
</html>
Date :
2011-07-08 13:46:22
By :
watcharop
ครับ ต้องการ ตำแหน่ง Mouse อ่ะครับ
แต่ ค่าที่ได้มามันไม่ออก อ่ะครับ
ที่เขียน เป็น prototype เพราะ ว่าเวลาจะใช้ มันจะได้ เขียน สั้นๆ อ่ะครับผม
เช่น
pos=new General();
alert(pos.getPosX()+""+pos.getPosY());
ประมาณนี้อ่ะครับผม
Date :
2011-07-08 15:02:07
By :
beandnam
พี่ไม่ได้ศึกษาเรื่องนี้มากเท่าไหร่แต่คุ้นๆ ว่าต้อง bind object this เข้ากับ method ครับ
อันนี้ก็แบบนึงครับ น่าจะมีวิธีเขียนหลายแบบ
<script type='text/javascript'>
var Browser = function(){
this.browserName = function(){
return 'FF';
}
}
var General = function (){
var t = this;
t.addEventMouseMove=function(){
if(window.addEventListener){
window.addEventListener("mousemove",t.getPositionXY,true);
}
else if(window.attachEvent){
d.onmousemove=this.getPositionXY;
}
};
t.getPositionXY=function (e){
var browser=new Browser();
if(browser.browserName()=="FF" || browser.browserName()=="OPERA"){
t.posX=e.pageX;
t.posY=e.pageY;
}
else if(browser.browserName()=="IE"){
t.posX=event.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
t.posY=event.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
}
};
t.setPosX=function (posX){t.posX=posX;};
t.getPosX=function (){return t.posX;};
t.setPosY=function (posY){t.posY=posY;};
t.getPosY=function (){return t.posY;};
};
var g=new General();
g.addEventMouseMove();
var getPosXY=function(){
alert(g.getPosX());
}
</script>
<input type='button' id='button' value='Click Here' onClick='getPosXY()' />
Date :
2011-07-08 22:53:35
By :
num
ขอบคุณท่าน num ครับ
ว่าแต่ ทำไมมันต้องใช้ bind object this ด้วยอ่ะครับ งง
Date :
2011-07-09 15:35:39
By :
beandnam
this มีการใช้ปนกัน หลายที่ครับ
ในการใช้ this ในบางครั้งจะกลายเป็น this ของ object ตัวอื่น
เพื่อที่จะมั่นใจว่า this เป็น this ของ object ที่เรากำลังสร้าง
อย่างโค้ดข้างบนนี้จะต้องส่งตัวแปร t ไปแทนครับ
แต่คิดว่าจะวิธีอื่นๆ ที่จะ bind this กับ method โดยใช้คำว่า this เหมือนเดิมได้ครับ
Date :
2011-07-09 18:59:43
By :
num
thank ครับผม
Date :
2011-07-09 21:51:19
By :
beandnam
Load balance : Server 03