2013-11-04 58 views
-3

試圖用我當前非常有限的JavaScript知識來獲得一些樂趣。爲什麼這個基本的JavaScript事件不起作用?

http://jsfiddle.net/pDMq9/

爲什麼心不是這方面的工作?我做錯了什麼?

HTML

<body> 

<input type="button" value="Click me" id="button" /> 

</body> 

的Javascript

var x = e.clientX; 
var y = e.clientY; 

var p = document.getElementById("button"); 

function mousedown() { 
    if (p.mousedown) { 
     alert(x, y); 
    } 
} 
+2

請張貼在這個問題的一些代碼。 http://stackoverflow.com/zh-cn/about – David

+2

你期望發生什麼?你所做的只是設置一些變量並聲明一個函數。你從不*調用*該功能。 – George

+0

你永遠不會致電該事件 – tymeJV

回答

8
  1. 您嘗試從mousedown功能外活動獲得的值(即前的事件存在)
  2. 你永遠不分配mousedown函數爲事件處理
  3. 你不接受任何參數的mousedown功能
  4. 你試了mousedown財產mousedown函數內部沒有明顯的原因
  5. 您傳遞多個參數來alert

因此,要解決這個問題:

function mousedownHandler(e) { 
    var x = e.clientX; 
    var y = e.clientY; 
    alert(x + ", " + y); 
} 

var p = document.getElementById("button"); 
p.addEventListener('mousedown', mousedownHandler); 
1

你必須ATTAC h clickmousedown事件到元素。在函數內部,您可以獲取事件並從中檢索clientXclientY

的JavaScript

var p = document.getElementById("button"); 

p.onclick = function mousedown(e) { 
    var x = e.clientX; 
    var y = e.clientY; 
    alert(x + ' ' + y); 
} 

演示

http://jsfiddle.net/8gzMj/

+0

感謝您的快速回答!讓更多的感覺:) – user2953255

-1

你不調用函數,則必須使用此

<body> 

<input type="button" value="Click me" id="button" onClick="mousedown()" /> 

</body> 
0
  1. e不是全局變量。通常e是關聯到的事件處理程序的事件:

    ​​
  2. 的事件處理程序應結合相應的事件:

    var p = document.getElementById("button"); 
        p.onmousedown = mousedownHandler; 
    

Here在的jsfiddle您的例子的運行叉。

0

首先,您需要將一個事件附加到元素。然後你需要傳遞'e'或事件。然後你可以閱讀它的屬性。

var p = document.getElementById("button"); 

p.addEventListener('mousedown', mousedown); 

function mousedown(e) { 
    var x = e.clientX; 
    var y = e.clientY; 

    alert(x, y); 

} 

http://jsfiddle.net/cSUfL/

-1
<!DOCTYPE html> 
<html> 
<head> 
    <title>HTML</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <script type="text/javascript"> 
     function mousedown(e) { 
      var x = e.clientX; 
      var y = e.clientY; 
      alert(x + "\n" + y); 
     } 
    </script> 
</head> 
<body> 
    <table> 
     <input type="button" value="Click me" id="button" onmousedown="mousedown(event);" /> 
     <!-- alternatively --> 
     <button id="button2" onmousedown="mousedown(event)">Click me</button> 
    </table> 
</body> 
</html> 
+0

爲什麼這downvote?請爭辯。 –