javascript - 如何实现鼠标左键在控下状态并且移出div才改变它的内容!
伊谢尔伦
伊谢尔伦 2017-04-11 09:40:31
[JavaScript讨论组]
<!DOCTYPE html>
<html>

<body>

    <p id="dv" style="background-color:green;width:120px;
height:20px;padding:40px;color:#ffffff;">把鼠标移到上面</p>

    <script>
        var dv = document.getElementById("dv");
        dv.onmousedown = function bs() {
            od();
        }

        function od() {
            dv.onmouseout = function() {
                displayDate()
            };

            function displayDate() {
                dv.innerHTML = Date();
            }
        }
    </script>

</body>

</html>
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(1)
ringa_lee

看你代码现在这种做法不大合适,我们走一遍代码,首先触发了mousedown事件之后,你就要执行od方法了,而od方法是给dv添加mouseout事件, 那我多点几次,不就给dv绑定了多几次mouseout事件了?

理一下思路,你可以这样,mousedown事件触发逻辑是:用一个变量来记录鼠标点击了;(比如a=1;)
mouseout事件触发逻辑是:识别变量(约定好比如 a==1),那么就该干嘛干嘛。


粗略给一下代码:

<script>
        var dv = document.getElementById("dv");
        dv.onmousedown = function() {
            var record = dv.getAttribute('data-record');//我把记录变量放到dom属性去了
            if(!record){//属性值木有,那就赋值1咯
                dv.setAttribute('data-record',1);
            }
        }
        dv.onmouseout = function() {
                var record = dv.getAttribute('data-record');
                if(record){//属性值有,说明点击了,那就开始吧
                    displayDate();
                    dv.setAttribute('data-record',0);//这个时候记录值还原咯,给个0也行= =||
                }
        };

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

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