如何模拟拖动事件(单击按钮时鼠标移动)?

时间:2015-12-22 20:39:05

标签: javascript jquery jquery-events

我希望能够触发事件并让它显示实际上有一个按钮在事件被触发时失效。

$('table').on('mousemove', function(e) {
  var is_dragging = e.buttons.length > 0;
  // is_dragging should === true;
});

$('table').trigger('mousemove'); // is_dragging will be false

3 个答案:

答案 0 :(得分:1)

试一试。创建自定义事件并将buttons属性附加到其中。

$('table').on('mousemove', function(e) {
  var is_dragging = e.buttons.length > 0;
  // is_dragging should === true;
});

var e = $.Event( 'mousemove' );
e.buttons = ['<set any key you need>'];

$('table').trigger(e); 

答案 1 :(得分:1)

所以基于我认为你想要完成的事情。你想为onmousemove设置一个事件处理程序,你要检查按钮是否关闭(不管哪个按钮关闭)但是你想手动触发事件并且条件is_dragging结果为true。 / p>

如果使用$('table').trigger('mousemove');手动触发事件,则事件将没有按钮属性,但它将具有== 3的.isTrigger属性。

试试这个: https://jsfiddle.net/SeanWessell/L2z0su3j/

$('table').on('mousemove', function(e) {
  var is_dragging = e.buttons > 0 || e.buttons == undefined && e.isTrigger == 3;
  // is_dragging should === true;
  $('p').html(is_dragging.toString())
});

$('#trigger').click(function(){

    $('table').trigger('mousemove');

})

答案 2 :(得分:0)

<强> :: UPDATE ::

了解ondragstart http://www.w3schools.com/jsref/event_ondragstart.asp

=======

*.buttons用于您点击的按钮。在mousemove时,您没有点击按钮。

表示您的e.buttons === 0

有关MouseEvent.button的文档: http://www.w3schools.com/jsref/event_button.asp

您可以在函数中放置debugger并检查e变量

来验证这一点

<强>的jsfiddle: http://jsfiddle.net/qf3u8m61/