Chrome下JQuery的mouseup事件丢失

最近自己在做一个许愿墙的时候,有一个拖动小纸条的需求,需要用到jquery进行实现,但是在实现过程中发现jquery的mouseup事件一直不响应,然后就百度查了一下,发现有人遇到过类似问题,文章中建议使用bind方式进行事件监控,试了一下果然奏效。下面帖上本次代码:

正确代码:

<pre name="code" class="javascript"><span>	</span>var index=51;//点击小纸条时该小纸条置于最顶层
	$(document).ready(function(){
		var clicked = "Nope.";
        var clientX = "0";
        var clientY = "0";
        var difx = "0";
        var dify = "0"; 
        
        $(".wishpaper").mousedown(function(e){
			//鼠标按下,修改样式为拖动样式
			$(this).css("cursor","move");
			//点击小纸条时该小纸条置于最顶层
			$(this).css("z-index",index);
			index++;//方便下一个小纸条置于最顶层
			clicked = "Yeah.";
			//点击时,记录鼠标位置
			clientX=e.clientX;
			clientY=e.clientY; 
		}); 

		$(".wishpaper").bind("mouseup",function(){
			//鼠标抬起,改回鼠标样式
			$(this).css("cursor","default");
			clicked="Nope."; 
		}); 
	
		$(".wishpaper").mousemove(function(event){ 
			$("#test").html(clicked);
			difx = event.clientX-clientX;
			dify = event.clientY-clientY;  
			var newx = parseInt($(this).css("left").replace('px',''))+difx;
        	var newy = parseInt($(this).css("top").replace('px',''))+dify;  
        	if(clicked=="Yeah."){
            	//拖动时如果鼠标是按下,则改变小纸条位置 
        		$(this).css({ top: newy, left: newx });
        	}
        	//重置鼠标位置     
        	clientX=event.clientX;
        	clientY=event.clientY;
		});
<span>		</span>
<span>		</span>//防止鼠标拖动太快溢出纸片范围导致鼠标抬起事件不能执行
		$(document).bind("mouseup",function(){
			$(this).css("cursor","default");
			clicked="Nope."; 
		}); 
	});

 

之前错误代码:

<pre name="code" class="javascript"><pre name="code" class="javascript">$(".wishpaper").mouseup(function(){
<span style="white-space:pre">	</span>//鼠标抬起,改回鼠标样式
	$(this).css("cursor","default");
	clicked="Nope."; 
}); 

 
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值