1.防止重复点击可以添加标记,第一次点击后变为false,每次点击判断这个标记是true才执行
2.如果是按钮防止重复点击,可以再按钮点击后,给按钮添加disabled属性,按钮就再也点击不了
举个例子:
<!doctype html><html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<button onclick="fn()">方式一</button>
<button onclick="alert('只会出现一次哦,之后想点都点不了')this.disabled = true">方式二</button>
<body>
<script>
//第一种方式
var flag = true
function fn(){
if(flag){
flag = false
alert('只会出现一次哦')
}
}
</script>
</body>
</html>
setTimeout() 和 cleartimeout() 是逆过程 可以查看用法是否正确,我处理过的一段 如下 var action=setTimeout(function(){...},1000)if(action) clearTimeout(action)右键点击没试过,不过如果是左键点击的话就需要用到 鼠标点击的坐标与元素相对位置 的判断了
举个栗子
<style>div{
background: red
width: 100px
height: 100px
}
</style>
<div id="one" onclick="fa(this)">
<div id="1" style="position: absolute">1</div>
<div id="2" style="position: absolute">2</div>
<div id="3" style="position: absolute">3</div>
</div>
<script>
function fa(a){
var arr = [] //点击位置元素ID集合
var x = event.clientX //鼠标x坐标
var y = event.clientY //鼠标y坐标
var childs = a.children
for (var i = 0i < childs.length i++){
var left = childs[i].offsetLeft //子元素左边界坐标
var right = childs[i].offsetLeft + childs[i].offsetWidth //子元素右边界坐标
var top = childs[i].offsetTop //子元素上边界坐标
var bottom = childs[i].offsetTop + childs[i].offsetHeight //子元素下边界坐标
if (left < x && right > x && top < y && bottom > y){
arr.push(childs[i].id) //将符合条件的元素ID加入集合
}
}
alert("鼠标点击位置下的所有子元素的id:" + arr)
}
</script>