举个例子,在同一个页面有下拉选择框对象
<select class="mySelect">
<option value="user">按用户分析</option>
<option value="dept">按单位分析</option>
<option value="role">按角色分析</option>
</select>事件
当选择用户分析时,一组用户查询条件展现出来,queryUser查询按钮显示,并绑定查询方法countByUser(),$("#queryUser").on("click",countByUser);io
当选择单位分析时,一组单位查询条件展现出来,queryDept查询按钮显示,并绑定查询方法countByDept(),$("#queryDept").on("click",countByDept);class
当选择角色分析时,一组角色查询条件展现出来,queryRole查询按钮显示,并绑定查询方法countByRole(),$("#queryRole").on("click",countByRole);cli
先选择按用户分析,此时queryUser按钮绑定了一次click事件,再选择按单位分析,再选择按用户分析,此时queryUser按钮又绑定了一次click事件,点击查询按钮会调用两次countByUser()方法。select
解决办法是在绑定click以前先解绑方法,或者调用完方法以后解绑。方法
$("#queryUser").off("click"); //若是该对象存在其余click事件先解绑事件查询
$("#queryUser").on("click",countByUser); //绑定事件query