2013-03-21 120 views
0

我試圖理解一個代碼,一個帆布例如:帆布,觸發鼠標事件

爲什麼在事件處理程序代碼中的第三個參數「假」?它代表什麼?

這裏的完整代碼

function init() { 
// ... 
// Attach the mousemove event handler. 
canvas.addEventListener('mousemove', ev_mousemove, false); 
} 

// The mousemove event handler. 
var started = false; 
function ev_mousemove (ev) { 
    var x, y; 

// Get the mouse position relative to the canvas element. 
if (ev.layerX || ev.layerX == 0) { // Firefox 
    x = ev.layerX; 
    y = ev.layerY; 
    } 

回答

2

它看起來像有缺失的部分代碼。正如你所說的變量開始設置,但沒有使用,這就是爲什麼我覺得有一些代碼部分缺失(ev_mousemove函數後也沒有一個閉幕大括號)。

的ev.layerX == 0是剛過||這意味着「或」。這是以這種方式使用,所以它不會在Firefox中產生錯誤。基本上,它說,如果ev.layerX是真實的(現有的),或者是0做...

ND

+0

非常感謝你,有很大的幫助! – user1477955 2013-03-22 14:48:39

1

中的addEventListener的第三個真/假參數是用來「捕捉」事件

如果屬實,那麼您的「鼠標移動」事件將始終第一個轉到您的 ev_mousemove和然後轉到正常的DOM事件樹。

如果是假,那麼你的「鼠標移動」事件將只是通過正常的DOM事件樹。

除非你有一個理由你自己的事件處理程序的優先級,通常你可以離開這個虛假的任何類型的活動。

+0

非常感謝你,現在我還發現它的鏈接:[鏈接] http://www.developphp.com/view_lesson.php?v=827 – user1477955 2013-03-22 14:47:27