Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何模拟拖动事件(单击鼠标移动按钮)?_Javascript_Jquery_Jquery Events - Fatal编程技术网

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

Javascript 如何模拟拖动事件(单击鼠标移动按钮)?,javascript,jquery,jquery-events,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 ::更新:: 查看ondragstart =======

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

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

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

::更新::

查看
ondragstart

=======

*。按钮
表示您单击的按钮。在执行
mousemove
时,您尚未单击任何按钮

意思是你的
e.按钮===0

MouseEvent.按钮上的文档:

您可以通过在函数中抛出
调试器
并检查
e
变量来验证这一点

JSFiddle:
试试这个。创建自定义事件并向其附加
按钮
属性

$('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); 
$('table')。在('mousemove',函数(e)上{
变量为拖动=e.buttons.length>0;
//is_应===真;
});
var e=$.Event('mousemove');
e、 按钮=[''];
$('table')。触发器(e);

因此,基于我认为您正在努力实现的目标。您希望为onmousemove提供一个事件处理程序,在该处理程序中,您将检查按钮是否已关闭(无论哪个按钮已关闭),但您希望手动触发事件,并使条件为true

如果事件是使用
$('table').trigger('mousemove')手动触发的事件将不具有buttons属性,但它将具有.isTrigger属性,该属性将==3

试试这个:


您当前的代码有什么问题?请阅读。通常,
mousemove
附加在
mousedown
处理程序中以模拟拖动,因此无需检查是否启用了“拖动”。请更详细地解释您实际需要什么。@Anders我更新了代码以显示我正在解决的问题having@Teemu我希望能够触发该事件,并让它显示在触发该事件时,实际上有一个按钮处于关闭状态。@DanielPatz检查我对自定义事件的回答。我很确定OP想要在mousemove处理程序中进行模拟。我知道,只要按钮关闭并且触发了
mousemove
事件,我就不在乎单击了哪些按钮。我知道你现在在问什么了。。。你的姿势更新不够清晰:看看ondragstart真棒,就是这样!以下是证明其有效性的JSFIDLE:
$('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');

})