让一个元素可以捕获所有的鼠标事件。
可以用alert()或者releaseCapture(),打断当前的鼠标捕获。
这是一个例子:
- <button id='btn' onclick='doClick()'>Do It!</button><br />
- <button onclick='setCap()'>Set It Cpature!</button><br />
- <div id='test' />
- <script>
- var i=0;
- function setCap(){
- document.getElementById("btn").setCapture();
- }
- function doClick(){
- if(i%5==0){
- document.getElementById("btn").releaseCapture();
-
- log("Stop It!");
- }else{
- log("Btn doClick!");
- }
- }
- function log(text){
- document.getElementById("test").innerHTML+=(i++)+":"+text+"<Br />";
- }
- </script>
<button id='btn' onclick='doClick()'>Do It!</button><br />
<button onclick='setCap()'>Set It Cpature!</button><br />
<div id='test' />
<script>
var i=0;
function setCap(){
document.getElementById("btn").setCapture();
}
function doClick(){
if(i%5==0){
document.getElementById("btn").releaseCapture();
//alert("Stop It!");
log("Stop It!");
}else{
log("Btn doClick!");
}
}
function log(text){
document.getElementById("test").innerHTML+=(i++)+":"+text+"<Br />";
}
</script>
setCapture()可以用在对DIV的拖动效果上。就不用给body设置onmousemove事件了,直接给DIV设置,然后通过setCapture()让它捕获所有的鼠标事件。
不过setCapture()方法,只有IE支持。
|