在 img 上进行 mousemove 后,Mouseup 不起作用

2024-02-01

我正在尝试做一个简单的拖动脚本。 这个想法是在鼠标按下时保存位置,在鼠标移动时更新视图,并在鼠标抬起时停止。问题,mouseup 事件无法正常工作。

看代码:

var target = $('a')
var pos = 0;
var dragging = false;

$(document).mousedown(function(e) { pos=e.pageX; dragging = true })
$(document).mouseup(function() { dragging = false })
$(document).mousemove(function(e) {
    if(dragging){ 
        target.css('left', e.pageX-pos);
    }
})  ​

为什么 mouseup 与“a”标签一起使用:http://jsfiddle.net/leyou/c3TrG/1/ http://jsfiddle.net/leyou/c3TrG/1/

为什么 mouseup 不能与“img”标签一起使用:http://jsfiddle.net/leyou/eNwzv/ http://jsfiddle.net/leyou/eNwzv/

只需尝试水平拖动它们即可。

在 ie9、ff 和 chrome 中也有同样的问题。 Windows 7的


只需添加e.preventDefault()到你的 mousedown 处理程序,如下所示:

var target = $('img')
var pos = 0;
var dragging = false;

$(document).mousedown(function(e) { e.preventDefault(); pos=e.pageX; dragging = true })
$(document).mouseup(function() { dragging = false })
$(document).mousemove(function(e) {
    if(dragging){ 
        target.css('left', e.pageX-pos);
    }
})

查看工作demo http://jsfiddle.net/eNwzv/1/ .

修复的基本原理是,浏览器也在执行自己的本机图像拖放操作(例如,当您将图像拖出浏览器以将其放入外部应用程序时),因此您需要取消该默认设置原生拖放.preventDefault() .

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 img 上进行 mousemove 后,Mouseup 不起作用 的相关文章

  • HTML5 仅拖放图像

    我想做的是 如果所有拖动的文件都是图像 则将其删除 但如果有其他文件扩展名 则不要删除它们 而仅删除图像 这是我的尝试 HTML div div JavaScript var dropzone document getElementById
  • 如何使用 jQuery 进行同步请求?

    为什么不返回该函数的responseText function LoadBookmarksAsXml return ajax type GET async false url http www google com bookmarks ou
  • 像在 tumblr 注册页面上那样鬼写

    有谁知道如何创建一个类似 tumblr 的字段 http www tumblr com http www tumblr com 这是一个 URL 字段 其中有一些褪色的文本 然后当您单击它并键入时 它会附加一些文本 tumblr com 您
  • JQuery Datepicker OnSelect 和 TextChanged 问题

    自从将 OnSelect 添加到我的 Datepicker 后 该控件不再触发 TextChanged 事件 我的代码如下 function datepicker minDate 0 dateFormat dd M yy onSelect
  • 将纯文本转换为 HTML

    我有一个脚本 在某个时刻我可以通过 Ajax 调用获取 HTML 数据 我必须将此 HTML 转换为纯文本 如下所示 div text data 我现在想扭转这一局面 再次将文本设为 HTML 我有一个简单的 Jquery 方法可以做到这一
  • 如何立即启动setInterval循环? [复制]

    这个问题在这里已经有答案了 在一个简单的setInterval setInterval function Do something every 9 seconds 9000 第一个动作将在 9 秒后发生 t 9s 如何强制循环立即执行第一个
  • 与 IE8 兼容的最新 jQuery 版本是什么?

    我正在开发 Bootstrap 3 网站 并且我使用的 jQuery 版本 1 9 1 遇到了一些问题 我升级到 2 1 0 我的问题消失了 但是 这破坏了 IE8 兼容性 因为 2 1 0 不再支持 IE8 并且 jQuery 在该浏览器
  • 在 MVC 应用程序中使用 DataTables.NET ajax 调用访问 WebAPI 2 json

    我一直在尝试让 DataTables NET 与我构建的 WebAPI RESTFul 服务很好地配合 但返回的 json 似乎不符合 DataTables 正在寻找的内容 我尝试了各种 服务器处理 示例以及我在互联网上找到的一些示例 例如
  • HTML 下拉菜单禁用 Javascript 中的选项

    Question 下面的代码是隐藏所选项目下拉列表中的选项 因此 当用户选择该选项时 它将隐藏所有下拉选择列表中的所选值 我现在有四个下拉选择 我想实现像当下拉选择被触发时它将启用当前选择的选项值 意味着用户能够在用户触发时选择回下拉选择中
  • 回到使用 ajax 的 PushState 条目

    我对以下情况有疑问 用户访问网站 用户点击使用history pushState的链接来更新url 通过ajax加载部分页面内容 使用jQuery 用户单击加载新页面的常规链接 用户点击返回返回到pushState条目 该页面现在仅显示通过
  • 如何在jquery中每4秒添加和删除一个类

    由于某种原因 这并不是每 4 秒在具有 post 类的元素上添加和删除一个新类 jquery 正确加载 就像这样 chrome 显示代码没有错误 document ready function post addClass display d
  • div 中的文本字符有限,添加“阅读更多”链接并在单击链接时显示所有字符

    我有一个 div 里面有文本 使用 PHP 和 MySQL 显示 结构如下 div class description p Here is a lot of text p div 我想在 p 标签内的文本超过 100 个字符时显示 阅读更多
  • 如何在 drop 事件 jquery 上获取已删除项目的 id

    当我将某些东西放到 jquery droppable 时 我想获取删除的项目的 id 当我这样做时 here droppable tolerance fit accept one drop function id this attr id
  • JQuery:为什么元素的相对定位有时会返回窗口顶部 (0,0),而有时会正确返回?

    我试图在 ajax 调用时显示一个繁忙的等待图标 即event target或触发事件的对象 我使用以下代码来实现这一点 但在某些情况下 返回元素的位置 偏移量 是top 0 and left 0 我知道我可能犯了一个错误 但似乎无法纠正
  • 您可以将现有的 div 复制到模式对话框吗

    我有一个带有多个面板的仪表板来显示不同的信息 我希望能够添加一个按钮来以模式显示面板 我正在使用引导程序 我所能找到的只是已经编写的模态 我想复制作为面板的 div 标签的内容 然后将其显示在模型中 但我不确定如何进行 该面板的 html
  • jQuery 检查字体粗细是正常还是粗体

    我使用以下代码设置 font weight 属性 this css font weight normal 现在我想检查一个元素是否具有粗体或正常的字体粗细属性 我该怎么做 你可以使用以下方法得到它 fontWeight this css f
  • jQuery 悬停时滚动到 div 并返回到第一个元素

    我基本上有一个具有设定尺寸的 div 和overflow hidden 该 div 包含 7 个子 div 但一次只显示一个 我希望当它们各自的链接悬停时能够平滑地垂直滚动 但是 第一部分 div 没有链接 并且是没有悬停链接时的默认部分
  • 如何使用Jquery获取MS下拉列表的选定值

    我在我的 MVC 项目中使用了 MS 下拉列表 现在我想使用 Jquery 获取 MS 下拉值 如何才能做到这一点呢 Country msDropdown 我想使用 JQuery 获取 INDIA 的选定值 var countryName
  • 使用 AJAX 和 JQuery 按设定的时间间隔刷新 Rails 部分

    I have a page in my rails application that looks like 现在 我有另一个用 python 编码的人工智能应用程序 它处理视频 显示在 Rails 应用程序页面的左侧 并使用捕获的车辆及其相
  • 用javascript调用外部网页(跨域)

    我正在尝试使用以下网络服务来验证提要这个问题 https stackoverflow com questions 11996430 check if a url is a valid feed 但浏览器不允许我向另一台服务器发送 ajax

随机推荐