Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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 获取dragstart位置(使其像单击一样工作)_Javascript_Jquery_Click - Fatal编程技术网

Javascript 获取dragstart位置(使其像单击一样工作)

Javascript 获取dragstart位置(使其像单击一样工作),javascript,jquery,click,Javascript,Jquery,Click,我想让“dragstart”像点击一样工作。 例如: // 1. Get the click position $('#foo').on('click',function(e){ alert(e.pageX+':'+e.pageY);} // 2. Get dragstart position, nothing more $('#foo').on('dragstart',function(e){ alert(e.pageX+':'+e.pageY);} 这就是我想要实现的 但第二个例子当然

我想让“dragstart”像点击一样工作。 例如:

// 1. Get the click position
$('#foo').on('click',function(e){ alert(e.pageX+':'+e.pageY);} 

// 2. Get dragstart position, nothing more
$('#foo').on('dragstart',function(e){ alert(e.pageX+':'+e.pageY);}
这就是我想要实现的

但第二个例子当然不起作用,我不知道如何使之成为可能。简单地说,我需要得到dragstart点的坐标

我也使用jQuery Mobile,所以也许它有一些我可以使用的方法?我希望在没有任何其他库的情况下实现这一点,因此纯jQuery将是最好的解决方案

为什么??问题是,有时用户会快速单击特定元素,因此,他们会触发dragstart事件而不是单击。为了执行我的功能,我需要事件触发的位置

编辑:

我使用mousedown事件而不是dragstart解决了这个问题。Mousedown正确地给出了click的坐标,但是知道是否有办法获得dragstart的坐标还是很好的。

您可以从jQuery.UI调用draggable(),它有一个名为start的属性,您可以在该属性上绑定一个函数来获取坐标

例如:

// 1. Get the click position
$('#foo').on('click',function(e){ alert(e.pageX+':'+e.pageY);} 

// 2. Get dragstart position, nothing more
$('#foo').on('dragstart',function(e){ alert(e.pageX+':'+e.pageY);}
$('#foo').draggable({
    [other options]
    start: function(event) {
               alert(event.clientX+':'+event.clientY);
         }
});

来源:

谢谢,但我想知道有没有一种方法可以在我的应用程序中不包含jQueryUI的情况下实现这一点?我在其中使用jQuery mobile,也许它有一些我可以使用的方法?实际上如何拖动元素?仅使用jquery,我认为您不能。我不会故意拖动元素。我的应用程序是一个游戏,有时当用户在桌面浏览器上玩它时,他们会初始化dragstart而不是单击,因为他们必须快速单击元素。我的目标是获取dragstart的位置,或者模拟单击本身?我想在没有这个库的情况下找到一个解决问题的方法,因为我不使用它,我不知道我是否想把它全部包括进来,只是为了有一个我认为是这样的方法。我需要“dragstart”来获得位置,因为如果有人在桌面浏览器中启动应用程序,有时可以初始化拖动而不是单击事件。目前,该应用程序在移动设备上运行良好。DragTable的API文档称创建事件“在创建DragTable时触发”。因此,如果插件加载正确,一切都应该正常。无论如何,对我来说,听click或dragstart更有意义,而不是两者都听。取决于你需要什么。好吧,你说得对!有趣。拖动并不意味着单击:如果您真的想避免使用jQuery UI,您可能会在这里找到一个解决方案:这还附带了mousedown和mouseup的事件处理,可能非常合适。