<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>作用域</title>
<style>
div{ width: 300px; height: 300px; margin: 0 auto; background: pink;}
</style>
<script src='jquery-1.11.2.min.js'></script>
<script>
$(function() {
var a=true;
if(a==true){
alert('ok')
$('div').click(function(event) {
alert('第一次'+a);
a=!a;
alert('第1.1次'+a);
$('div').click(function(event) {
alert('第二次'+a)
});
});
}
});
</script>
</head>
<body>
<div></div>
</body>
</html>
不知道为什么当a是false的时候 第一个点击事件也能执行
你的代码逻辑稍有问题,看:
当 div
点击的时候,如果 a
为真,则····
你的:
当 a
为真的时候,点击 div
则····
这样试试:
var a = true,
$test = $('div');
$test.click(function (e) {
e.preventDefault();
if (a) {
// 执行一次
console.log('第一次' + a);
// 更改变量的值 a = false;
a = !a;
// 继续执行,输出:第1.1次false
console.log('第1.1次' + a);
} else {
// 点击无效
console.log('全局变量已更改,点击无效');
}
// 禁止穿透执行
e.stopPropagation();
return false;
});
第一次进去 进行了事件绑定