读书人

JQuery在hover(in)状态上添加click事

发布时间: 2012-09-19 13:43:53 作者: rapoo

JQuery在hover(in)状态下添加click事件的多次触发现象

<!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"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>event多次触发</title><style type="text/css">.out {width:100px;height:100px;padding:10px;border:solid 1px #CCC;}.inner {width:50px;height:50px;border:solid 1px #555;}.show {background:#EEE;width:200px;height:200px;padding:10px;margin-top:20px;border:solid 1px #F00;}</style><script type="text/javascript" src="js/jQuery-1.7.1.js"></script><script type="text/javascript">$(function() {var num_c = 0;//记录click事件触发次数var num_i = 0;//记录hover(in)事件触发次数var num_o = 0;  //记录hover(out)事件触发次数var html = '';//显示在.show中的信息$('.out').hover(function() {$(this).css('border' , 'solid 1px #F00');$('.inner').click(function() {num_c += 1;});num_i += 1;} , function() {$(this).css('border' , 'solid 1px #CCC');num_o += 1;html += 'hover(in)触发次数为:' + num_i + '<br />';html += 'hover(out)触发次数为:' + num_o + '<br />';html += 'click触发次数为:' + num_c + '<br />';$('.show').html(html);init();});//初始化function init() {num_c = 0;//记录click事件触发次数num_i = 0;//记录hover(in)事件触发次数num_o = 0;  //记录hover(out)事件触发次数html = '';//显示在.show中的信息}});</script></head><body><div class="out"><div class="inner"></div></div><div class="show"></div></body></html>


JQuery在hover(in)状态上添加click事件的多次触发现象

当第一次hover并点击的时候,click为1。

每当click一次后,下一次click触发次数将+1(不完全规律,没仔细测过,但是多次触发是一定的现象)

如图,为我click了多次后,显示的各事件触发次数。


2012-09-11 11:00

在 php-]丝(249722824) 的指导下,得到一个解决办法。

php-]丝(249722824) 10:54:36
那在这个click之前 写个$('.inner').unbind('click');
取消所有click绑定

在此,非常感谢 php-]丝(249722824)

读书人网 >Web前端

热点推荐