繁体   English   中英

您如何模拟拖动事件(单击一个按钮即可删除)?

[英]How do you simulate a drag event (mousemove with a button clicked)?

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

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

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

试试看 创建一个自定义事件并将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); 

因此,基于我认为您正在尝试实现的目标。 您想为onmousemove提供一个事件处理程序,在该事件处理程序中检查按钮是否按下(无论哪个按钮按下),但是您想要手动触发事件并使条件is_dragging result为true。

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

试试这个: 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');

})

::更新::

看看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/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM