如何在茉莉花中模拟鼠标按下事件

时间:2019-04-18 06:36:39

标签: angular jasmine

我想测试一个执行html元素拖动的功能,但是我没有得到如何模拟鼠标按下功能的方法。

我想测试以下代码。

reposition(element: HTMLElement) {
      var jacket = element.parentElement;
      jacket.onmousedown = dragMouseDown;
      var pos1, pos2, pos3, pos4;

      function dragMouseDown(e) {
         let strClasses: string = (element).getAttributeNode('class').textContent;

         if (strClasses.includes('ao-selected') && strClasses.includes('ao-reposition')) {
            e = e || window.event;
            e.preventDefault();
            pos3 = e.clientX;
            pos4 = e.clientY;
            document.onmouseup = closeDragElement;
            document.onmousemove = elementDrag;
         }
      }
      function elementDrag(e) {
         e = e || window.event;
         e.preventDefault();
         pos1 = pos3 - e.clientX;
         pos2 = pos4 - e.clientY;
         pos3 = e.clientX;
         pos4 = e.clientY;
         jacket.style.top = (jacket.offsetTop - pos2) + "px";
         jacket.style.left = (jacket.offsetLeft - pos1) + "px";
      }

      function closeDragElement(e) {
         document.removeEventListener('onmousedown', dragMouseDown), false;
         document.onmousemove = null;
      }
   }

0 个答案:

没有答案