小叶女贞适合在什么地方种植?

小说:小叶女贞适合在什么地方种植?作者:建安宗顺更新时间:2019-04-25字数:27200

悟空唯恐还有什么后续,他又坐了一会,才敢睁开眼睛。这一看,可惊得非同小可。

大叶女贞分支点一般多高?

可事实上,半个月酒色无度的生活,使曼苏尔的身子明显地瘦了一圈,眼睑浮肿,目光浑浊,已不像过去那样炯炯有神,他非但没有把身体调养好,反而把健壮的身体给毁坏了。
“靠,老四,你的桃花运好强啊!老大我自认为自己长得不错,能够在华夏大学掳获一些美女的芳心!但是知道我遇到你这个怪物的时候,我的信心彻底的受打击了。不对,这只有三个美女,华夏大学还有很多个,我就不信,你一个个都认识!”南宫羽只觉得自己的小心肝被强烈的打击了,对着唐欣出言说道。

“不错!臣无意中截获了五万两黄金的庆王盐利,这笔黑财臣不敢私取,愿意献给殿下,以壮大殿下的势力。”

前言

我在之前写过关于 JS 拖拽的文章,实现方式和网上能搜到的方法大致相同,别无二致,但是在一次偶然的测试中发现,这种绑定事件的方式可能会和其它的拖拽事件产生冲突,由此产生了对于事件绑定的思考。本文主要介绍解决这种冲突的方法,其实就是事件绑定的时机问题。

问题来源

这个问题是在类似如下 CodePen 例子中发现的,在有拖拽功能的页面中添加一个原生 input range 元素,可以发现 input range 的拖拽失效了。

See the Pen drag with conflict issue by Zongbin (@nzbin) on CodePen.

让我们看一下拖拽方法代码:

var draggable = function(modal, handle) {
...
  $(handle).on("mousedown", dragStart);
  $(document).on("mousemove", dragMove);
  $(document).on("mouseup", dragEnd);
}

几乎网上的大部分拖拽案例都是上面这种绑定事件的方法。起初以为是 jQuery 事件绑定的问题,其实完全不相关,使用原生 JS 同样会遇到这种问题。

再看一下拖拽的事件绑定,很明显,在 document 上绑定的事件和 input range 的拖拽事件冲突了。其实,document 作为最上层的节点,它上面不应该绑定其它事件(事件代理除外),如果绑定,必须是临时性绑定,否则一定会造成冲突。

解决方法

知道问题所在之后,解决方法也非常简单,其中参考了 jQuery UI 的处理方式。

我们可以在拖拽开始的时候绑定 document 的事件,然后在拖拽结束的时候移除 document 的事件。

var draggable = function(modal, handle) {
...
  var dragStart = function(e) {
...
    $(document).on("mousemove", dragMove)
               .on("mouseup", dragEnd);
  }
...

  var dragEnd = function(e) {
    $(document).off("mousemove")
               .off("mouseup");
...
  }

  $(handle).on("mousedown", dragStart);
  
}

下面 CodePen 中的 input range 已经可以正常拖动了。

See the Pen drag with conflict issue fixed by Zongbin (@nzbin) on CodePen.

总结

我们可以通过控制台的 Event Listener 查看绑定的事件,在平时的工作中,切记不要污染全局的默认事件。一般情况下,工作中并不会遇到本文所说的这一情况,但是如果真的碰到了,需要知道问题的所在。

编辑:建安徒

发布:2019-04-25 13:18:06

当前文章:http://www.scycxh.com/3a5mi.html

江苏绣线菊研究基地,尖叶绣线菊自产自销。 四月份可以移植睡莲吗? 马兰花能长多高? 云南可以栽植瓜子黄杨吗? 四川可以种植凌霄花吗? 紫藤可以种顶楼吗? 沭阳长景园林苗木场教您采购优质红叶李 【苗市调查】沙地柏的销售,价稳才是最好的出路哦!

67029 52727 20246 95020 68668 58702 84408 69721 96498 13058 37283 12260 40228 76528 63629 47534 23271 19872 49791 36275

我要说两句: (0人参与)

发布