使用click事件,很难确定在拖动开始和结束的时候触发,所以使用了onmouseup(释放鼠标的时候),释放鼠标的时候,即在拖动还未结束,但是准备处理的阶段,此时mouseButtonFlag按照逻辑来说应该是true,即不会触发绑定的事件。

1.将click转为使用onmouseup事件

2.添加mouseButtonFlag对象,判断是否拖拽情况,用以处理是否触发鼠标释放(点击)事件

(这个是篇sortable的参数说明的文章,作者xpsharphttp://blog.csdn.net/xpsharp/article/details/6906228

需要处理的是,拖动图片的时候,不能触发点击事件

  1. <ul class="alist ui-sortable" id="acAlbums">
  2. <!--加载相册-->
  3.  
  4. <li>
  5. <div class="closed"></div>
  6. <div class="media1">
  7. <a href="#_">
  8. <img src="http://file.ttyouni.com/image/cf195039ccf61be50eca6fad8beddd837a67e1876165d68ef16fb51385e0341bf7893184ab4034465ca6bbbe041be38bddb9d98c3453acc7799dcc3248aa0a0c0f208bde2f43c2284e2b28331912539c734556076d66b0bf" alt="" url="" onmouseup="openImageSetDialog(this)" width="50"></a>
  9. </div>
  10. </li><li style="position: relative; left: 0px; top: 0px;" class="">
  11. <div class="closed"></div>
  12. <div class="media1">
  13. <a href="#_">
  14. <img src="http://file.ttyouni.com/image/cf195039ccf61be50eca6fad8beddd837a67e1876165d68ef16fb51385e0341bf7893184ab4034465ca6bbbe041be38bddb9d98c3453acc7799dcc3248aa0a0c9474269a0c6f49fc58f17296ca8f10dd734556076d66b0bf" alt="" url="" onmouseup="openImageSetDialog(this)" width="50"></a>
  15. </div>
  16. </li><li style="position: relative; left: 0px; top: 0px;" class="">
  17. <div class="closed"></div>
  18. <div class="media1">
  19. <a href="#_">
  20. <img src="http://file.ttyouni.com/image/cf195039ccf61be50eca6fad8beddd837a67e1876165d68ef16fb51385e0341bf7893184ab4034465ca6bbbe041be38bddb9d98c3453acc7799dcc3248aa0a0c0f208bde2f43c2284e2b28331912539c734556076d66b0bf" alt="" url="" onmouseup="openImageSetDialog(this)" width="50"></a>
  21. </div>
  22. </li><li style="position: relative; left: 0px; top: 0px;" class="">
  23. <div class="closed"></div>
  24. <div class="media1">
  25. <a href="#_">
  26. <img src="http://file.ttyouni.com/image/cf195039ccf61be50eca6fad8beddd837a67e1876165d68ef16fb51385e0341bf7893184ab4034465ca6bbbe041be38bddb9d98c3453acc7799dcc3248aa0a0c0f208bde2f43c2284e2b28331912539c734556076d66b0bf" alt="" url="" onmouseup="openImageSetDialog(this)" width="50"></a>
  27. </div>
  28. </li>
  29. <li style="position: relative; left: 0px; top: 0px;" class="">
  30. <div class="closed"></div>
  31. <div class="media1">
  32. <a href="#_">
  33. <img src="/Content/Images/Scene/Gather204/banner.jpg" alt="" url="http://www.ttyouni.com/" onmouseup="openImageSetDialog(this)" width="50"></a>
  34. </div>
  35. </li>
  36.  
  37. <li class="add">
  38. <a href="javascript:;">
  39. <img src="/Content/Images/Scene/Vote004/jia.jpg" onclick="openImageSetDialog(this,1)" width="50">
  40. </a>
  41. </li>
  42. </ul>

html

处理的JS

  1. var mouseButtonFlag = false;//控制是否触发点击事件
  2. //拖动
  3. $('#acAlbums').sortable({
  4. items: "li:not(.add)",
  5. start: function (event, ui) {
  6. mouseButtonFlag = true;
  7. },
  8. stop: function (event, ui) {
  9. mouseButtonFlag = false;
  10. }
  11. });
  12.  
  13. //打开轮播图片设置的弹窗
  14. function openImageSetDialog(obj,v) {
  15. if (mouseButtonFlag) {
  16. return;
  17. }
  18. if (v!=undefined) {//添加图片对象
  19. $("#show_image_1").attr("src", "/Content/Images/Scene/Vote004/jia.jpg");
  20. $("#image_url_txt").val("http://ttyouni.com/show/index")
  21. }
  22. else {
  23. $("#show_image_1").attr("src", $(obj).attr("src"));
  24. $("#image_url_txt").val($(obj).attr("url"))
  25. }
  26. $("#image_index_txt").val($(obj).parents("#acAlbums li").index())
  27. $("#choose_activebox1").show();
  28. }

JS =>处理单击事件与拖动事件并存的更多相关文章

  1. javascript中区分鼠标单击和拖动事件

    在javascript中,一般的DOM元素如div,都有onmousedown.onmousemove.onmouseup这3个鼠标事件. <div id="div1" on ...

  2. 百度地图手机端单触点单击和长按事件,解决部分手机(小米手机)地图单击事件失效,多触点、拖动依然触发长按的bug

    /** * Author 岳晓 * * 对百度地图的事件扩展,目前扩展了fastclick和longclick, * 解决某些设备click不执行的问题 * 解决长按事件在拖动.多触点依然执行的bug ...

  3. js(鼠标键盘拖动事件)

    拖动事件是h5(HTML5的) 1:draggable(true) 2:拖动源 ondragstart ,ondragend 3:目的地 ondraglenter,ondragover,ondragl ...

  4. js事件冒泡和事件委托

    js事件冒泡 js所谓的事件冒泡就是子级元素的某个事件被触发,它的上级元素的该事件也被递归执行 html: <ul class="clearfix" data-type=&q ...

  5. JS中的事件、事件冒泡和事件捕获、事件委托

    https://www.cnblogs.com/diver-blogs/p/5649270.html https://www.cnblogs.com/Chen-XiaoJun/p/6210987.ht ...

  6. js区分鼠标单双击 阻止事件冒泡

    function clickOrDblClick(obj) { count++; if (obj != undefined) { var rowStr = $.trim($(obj).find(&qu ...

  7. js中容易被忽视的事件问题总结

    一:跨平台事件 什么叫跨平台事件?即在不同的浏览器上执行同一事件,所使用的方法不同. 什么是EventUtil对象?有什么作用?即将所有与事件相关的函数,融合在一起的一个容器,方便管理事件对象,它没有 ...

  8. Js中的onblur和onfocus事件

    html页面中,诸如按钮.文本框等可视元素都具有拥有和失去焦点的事件,这些事件在响应鼠标或键盘动作时都可激发预设的操作.本文以文本框获得和失去焦点为例简单讲解onfocus和onblur的应用. 一. ...

  9. js中事件冒泡,事件捕获详解

    一.事件流 事件是js与HTML交互的基础,事件流描述的是页面接受事件的顺序,而事件流又分为三个阶段:捕获阶段.目标阶段和冒泡阶段. 如果单纯的事件处理,事件捕获和事件冒泡二选一即可,导致两者并存的原 ...

随机推荐

  1. p4中如何rollback/backout merge/integration

    原文: http://answers.perforce.com/articles/KB_Article/How-To-Rollback-An-Integration 当我们需要将一个branch上的代 ...

  2. Dll注入经典方法完整版

    总结一下基本的注入过程,分注入和卸载 注入Dll: 1,OpenProcess获得要注入进程的句柄 2,VirtualAllocEx在远程进程中开辟出一段内存,长度为strlen(dllname)+1 ...

  3. Core Animation学习总结

    文件夹: The Layer Beneath The Layer Tree(图层树) The Backing Image(寄宿层) Layer Geometry(图层几何学) Visual Effec ...

  4. Windows IIS注册asp 此操作系统版本不支持此选项 错误解决方法

    更新Win10,原来的IIS站点访问不了,原因是因为IIS 没有.net 4.5,使用网上的aspnet_regiis.exe -i命令,一点都不靠谱,直接提示: C:\WINDOWS\system3 ...

  5. Eclipse复制项目彻底修改项目名称

    一.需求 需要新做一个项目,框架还是Maven+SSM,于是就把原来的项目copy了一个,操作是直接选中原项目,CTRL+C ,然后粘贴,这个时候会让你选择工作空间和给一个新的项目名字,如下图,输入新 ...

  6. js获取客户端time,cookie,url,ip,refer,user_agent信息:

    <script src="http://pv.sohu.com/cityjson?ie=utf-8"></script> <script type=& ...

  7. numpy 中的 broadcasting 理解

    broadcast 是 numpy 中 array 的一个重要操作. 首先,broadcast 只适用于加减. 然后,broadcast 执行的时候,如果两个 array 的 shape 不一样,会先 ...

  8. JAVA MyBatis使用技巧收集

    1. 使用事务注解.    @Transactional

  9. C# 使用NLog记录日志入门操作

    环境:win7 64位, VS2010 1.首先用VS2010创建命令行工程NLogDemo 2.在程序包管理器控制台中输入:Install-Package NLog -Version 4.4.12 ...

  10. OpenCV 学习笔记 06 SIFT使用中出现版权问题error: (-213:The function/feature is not implemented)

    1 错误原因 1.1 报错全部信息: cv2.error: OpenCV(4.0.1) D:\Build\OpenCV\opencv_contrib-4.0.1\modules\xfeatures2d ...