今天遇到了這個方法,便去度娘瞭解了下瀏覽器
函數功能:該函數在屬於當前線程的指定窗口裏設置鼠標捕獲。一旦窗口捕獲了鼠標,全部鼠標輸入都針對該窗口,不管光標是否在窗口的邊界內。同一時刻只能有一個窗口捕獲鼠標。若是鼠標光標在另外一個線程建立的窗口上,只有當鼠標鍵按下時系統纔將鼠標輸入指向指定的窗口。函數
setCapture做用是將鼠標事件捕獲到當前文檔的指定的對象。這個對象會爲當前應用程序或整個系統接收全部鼠標事件。使用releaseCapture()釋放。測試
setCapture捕獲如下鼠標事件:onmousedown、onmouseup、onclick、ondblclick、onmouseover和onmouseout。程序中主要是要捕獲onmousemove和onmouseup事件。
參數爲false時容器不會捕獲容器內對象的鼠標事件,即容器內的對象能夠正常地觸發事件和取消冒泡。
DEMO:
網上不少DEMO說setCapture用於鼠標拖動元素,實際測試有沒有setCapture都不影響拖動功能,後來發現setCapture是用來取消其餘的拖動事件,好比文字選擇。
注意:谷歌瀏覽器不支持該函數 obj.setCapture && obj.setCapture(),包括使用谷歌內核的世界之窗瀏覽器。