工作小问题记录
问题:页面根据需求需要使用到slider,用户通过对slider的操作使得其他显示动态变化,
但是用户在元素上摁下鼠标后,移动幅度较大,鼠标偏离slider元素,这样导致动态显示部分无变化。
之前的写法是在元素上绑定mousedown、mouseup、mouseout
$('#slider').mousedown(function () {
});
$('#slider').mouseup(function () {
});
$('#slider').mouseout(function () {
});
以上的问题就是在于绑定的事件都是在slider上的,这样鼠标偏离slider就不会触发任何方法,解决办法就是要在 $(document) 上绑定事件。
(科补一下 $(document) 这个方法纯粹是对向window.load事件注册事件的替代方法)
修改后的写法:
$('#slider').mousedown(function () {
$(document).bind('mouseup', function (e3) {
//处理逻辑
/*
逻辑
*/
$(document).unbind('mouseup');
});
});
代码解释1:把事件绑定在slider对象里面,这样可以避免 页面点击其他地方也会出现 点击事件的效果
代码解释2:用完后,事件需要解绑mouseup,不然mouseup会重复多次
mousemove 也可以通到以上方法进行使用,具体看功能需求!!
又一个之前没注意的知识点,美滋滋~~~~