javascript - 我给一个Div添加了mouseup事件 如何在点击div的滚动条时不出发mouseup事件?如何用js解决?
黄舟
黄舟 2017-04-11 09:46:56
[JavaScript讨论组]

我给一个p添加了mouseup事件 如何在点击p的滚动条时不出发mouseup事件?如何用js解决?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="http://code.jquery.com/jquery...
<style type="text/css">

ul{ display: block; width: 100px; height: 200px; overflow: auto; margin: 20px auto; border: 1px solid red; }
ul li{display: block;}

</style>
</head>
<body>

<ul>
    <li>8000</li>
    <li>8000</li>
    <li>8000</li>
    <li>8000</li>
    <li>8000</li>
    <li>8000</li>
    <li>8000</li>
    <li>8000</li>
    <li>8000</li>
    <li>8000</li>
    <li>8000</li>
    <li>8000</li>
    <li>8000</li>
    <li>8000</li>
    <li>8000</li>
    <li>8000</li>
</ul>

</body>
</html>
<script type="text/javascript">
$(function(){

$("ul").mouseup(function(event) {
    alert(1);
});

});
</script>

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(3)
黄舟

滚动条属于ul,所以肯定会触发,可以考虑在外面加一个p,添加宽高overflow属性,内部的ul高度自动就好这样给ul添加点击事件就不会再触发了

阿神

提供个思路,不触发是不大可能的,但是能做个判断,用this.clientWidth,this.offsetLeft和event.clientX做个比较。判断是否点击在了滚动条上。是的话直接返回。

伊谢尔伦

有个想法但是没有被验证:

  1. 将 mousedown, mouseup 和 mousemove 事件同时注册到一个函数上;

  2. 将 mousedown 作为函数内动作的起点/条件分裂点,即如果鼠标按下后,出现 mousemove 事件,就返回;否则如果出现 mouseup 事件,就执行某个动作

仅仅是想法,希望能有更多启发

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号