javascript - JQuery - 在屏幕上单击并拖动 div 而无需拖动

标签 javascript jquery html css

我目前正在开发一个带有可拖动 div 的小元素。我创建的代码似乎无法正常工作,它会导致 JQuery 停止响应。

有没有不使用 .draggable 的简单好方法?

var hold = false;
        //Drag Elements

        $('#example').mousedown(function(){
            hold = true;
        });

        $('#example').mouseup(function(){
            hold = false;
        });

        $(document).on('mousemove', function(e){
            $('#example').css({
                while(hold){
                    left:   e.pageX-50,
                    top:    e.pageY-50
                }
            });
        });

谢谢

最佳答案

由于 Javascript 是单线程的,您的 while 循环永远不会退出,因为当您陷入 mousemove< 时 mouseup 处理程序无法运行处理程序。

while改为if:

    $(document).on('mousemove', function(e){
        if (hold) {
            $('#example').css({
                left:   e.pageX-50,
                top:    e.pageY-50
            });
        }
    });

关于javascript - JQuery - 在屏幕上单击并拖动 div 而无需拖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23431929/

相关文章:

javascript - 在ReactJS中修改状态对象直接重新渲染组件

javascript - 有什么方法可以在不触发 Change 事件的情况下重新填充 Html Select 的选项(使用 jQuery)?

html - "display: table"和 "float:left"不考虑边距

javascript - 将元素乘以数字并使用 jQuery 插入

html - IE7 上的 CSS 问题 - 导航菜单

javascript - 使用 express 和 multer 上传文件后如何下载?

javascript - 在 JavaScript 中将一个数组转换/转置为另一个数组?

javascript - 输入上的渲染功能消除了 Vue 中的 react 性

jQuery 图像不淡入

JQuery 按钮不显示警报