标签: mouseup

在mouseup事件处理程序中取消单击事件

编写一些拖放代码,我想在我的mouseup处理程序中取消单击事件.我认为防止默认应该做的伎俩,但点击事件仍然被触发.

有没有办法做到这一点?


这不起作用:

<div id="test">test</div>
<script>
$("#test").mouseup (function (e) {
  var a = 1;
  e.preventDefault();
});
$("#test").click (function (e) {
  var a = 2;
});
Run Code Online (Sandbox Code Playgroud)

javascript jquery click mouseup jquery-events

29
推荐指数
4
解决办法
3万
查看次数

jQuery mouseup事件是否适用于触控设备?

我找不到任何答案,所以我在这里问.目前我没有任何触摸设备,所以我无法测试它.

如果在容器外部单击,则以下代码会隐藏容器中的所有子容器.

$(document).mouseup(function(e) {
  var container = $('#container');
  if (!container.is(e.target) // if the target of the click isn't the container...
    && container.has(e.target).length === 0) // ... nor a descendant of the container
  {
    $('.subcontainer').hide();
  }
});
Run Code Online (Sandbox Code Playgroud)

这是否适用于触摸设备或触摸设备的等效mouseup设备?

jquery mouseup

16
推荐指数
1
解决办法
1万
查看次数

Angularjs中的ng-touchstart和ng-touchend

我有上触发功能的元件ng-mousedownng-mouseup.但是,它在触摸屏上不起作用,是否有任何指令ng-touchstartng-touchend

javascript mouseup mousedown touchstart angularjs

16
推荐指数
2
解决办法
3万
查看次数

离开iframe时鼠标丢失:导致反向输入

TL; DR问题:

一些javascript如何告诉窗口鼠标按钮已被释放?由于跨域iframe,mouseup事件正在丢失.我可以发现问题已经发生,但我不知道该怎么做才能治愈它.如果我可以强制鼠标指针位置,问题就会消失; 但是不允许javascript更改鼠标指针位置.如果我能"点击鼠标"那么问题就会消失,因为它会取代丢失的鼠标事件; 但在新的mouseup事件上使用dispatchEvent什么都不做.

情况:

  • 任何最新版本的Chrome,任何操作系统.
  • 包含位于内部的iframe的外部文档.根本不需要javascript.
  • 在不同域上托管的外部文档和内部iframe文档,均为https.相同基域的子域不同,但实际上是不同的域.我的示例使用www.pressero.com和client-prototype.dev2.edocbuilder.com.无论证书是否有效(我的是),问题仍然存在.
  • iframe中的文本框输入,位于左边缘或靠近左边缘.标准LTR文本方向.
  • 几乎没有例子:Demo1.这在外部文档中有一点点javascript,以方便更改iframe src.删除此JavaScript根本没有任何效果.

重要限制:

  • 偏偏用铬和铬的浏览器; 不是Firefox,Safari,Edge或IE.
  • 对于所有Chrome客户端是否完全相同,存在一些含糊不清的问题.我个人在运行Chrome 68或69的大约五台不同的Windows PC上亲自复制了相同的行为.一位同事在运行Chrome 69的Mac上以及在同一台Mac上运行的Windows VM中的Chrome 69上获得了略微不同的结果.

触发问题:

  • 用户尝试选择文本框输入中的所有文本,使用鼠标,从文本框末尾开始移动鼠标.
  • 无意中,用户将鼠标指针移过左边缘,因此将iframe移出外部文档.
  • 用户在鼠标指针离开iframe后释放鼠标左键.
  • 发生只有当鼠标被用于选择文本和仅当指示器在左按钮释放的时间的IFRAME外结束.其他选择文本的方法不会导致以下症状:
    • ctrl-A选择全部
    • 进入该领域
    • 使用shift-arrows选择文本
    • 使用鼠标选择文本,但从左到右
    • 使用鼠标选择文本,但在释放鼠标按钮时要小心指针位于iframe内部

制作反向插入文本的另一种方法是:

  • 将鼠标指针放在文本框的左上角.
  • 按住鼠标左键.
  • 输入文字.它是反向插入的,因为在每次击键后,插入点会在刚输入的字符之前重新定位.
  • 这仅仅是为了说明不希望的行为.这显然不是bug,因为它是一种人为的表现方式.

感知症状:

  • 在放开左按钮后键入的文本以相反的顺序插入:即,键入"abcde"将显示为"edcba",插入点位于第一个字符的左侧.

相关症状:

  • 如果正在使用javascript,例如用于调整对象大小或在画布上拖动它的功能,则即使在iframe外部释放左按钮后,拖动仍将继续.即使将指针移回iframe内部,拖动也会继续.
  • mouseup通过在iframe文档中附加alert()鼠标来证明事实确实是丢失的事件body.如果在指针位于iframe内部时释放鼠标按钮,则会发出警报; 如果在指针位于iframe之外时释放鼠标按钮,则不会发生这种情况.

我再次强调,只有CHROME有这种行为.在Firefox,Edge或IE中执行完全相同的操作,无论鼠标指针在何处,都会立即检测到鼠标按钮释放.

尝试了解决方法:

  • 建议用户注意他们的鼠标位置.不是流行的解决方案.
  • 应用于文本框的Javascript以在文本框聚焦时选择所有内容.这使得不必使用鼠标进行选择,因此可以防止用户遇到问题.但是,它使得无法选择文本的一小部分而不是整个文本.
  • 移动文本框使其不会与左边缘对齐.这使得当指针位于iframe之外时用户不太可能放手.

捕获丢失的mouseup事件:

通过将事件处理程序附加到<body>外部文档中,我可以捕获鼠标.然后我可以使用标准的postMessage技术告诉内部iframe窗口发生了mouseup.内部iframe知道在拖动过程中哪个元素处于活动状态,所以这很好.但是,在实际模拟mouseup事件时,我没有任何运气.我在这里试过这个triggerMouseEvent技术.它运行没有错误,但它显然没有做任何事情.这里的演示具有上面的最小示例,以及在外部文档中捕获mouseup的管道,将消息发布到内部文档,并调用:Demo2triggerMouseEvent

另一个奇怪的可能性

在尝试创建最小的示例时,我发现可能以某种方式涉及框模型.Demo1a与上面的demo1相同,只是iframe元素的高度为710px而不是700px.在我的测试机器上, …

iframe google-chrome chromium mouseup

10
推荐指数
1
解决办法
628
查看次数

Jquery查找Event是否为滚动条单击

我有一个场景,我隐藏Div块,如果我点击div块的任何一侧.

我正在使用Internet Explorer并测试应用程序.如果没有滚动条我的代码工作正常.如果在div块上有一个滚动条,那么当我单击滚动条时,它会认为滚动条不是div的一部分,它会隐藏div块.我试图保持div块打开,即使用户点击滚动条并进行滚动操作.

var $container = $(".toolbarBlock");

 $(document).mouseup(function (e) {
        if (!$container.is(e.target) // if the target of the click isn't the container...
            && $container.has(e.target).length === 0) // ... nor a descendant of the container
        {
            toolbarClose();
        }
    });

 function toolbarClose() {
    return $.when(slideOut($container));
 }
Run Code Online (Sandbox Code Playgroud)

jquery click scrollbar mouseup

8
推荐指数
1
解决办法
1万
查看次数

拖动链接后jQuery mouseup没有触发

看到这个jsfiddle:

http://jsfiddle.net/CB87X/6/

单击并按住按钮,拖动按钮并释放.如您所见,当释放鼠标按钮时,如果鼠标未在元素上,则mouseup事件永远不会触发.因此,我的示例中的样式永远不会改变回原来的样式.如果在没有点击元素的情况下释放鼠标按钮,如何触发mouseup事件?

编辑1:BTW我已经在这个网站上看了几个解决方案,实现了它们,而且mouseup事件仍然没有触发.

javascript css jquery mouseup

7
推荐指数
1
解决办法
8857
查看次数

如何知道鼠标按钮的当前状态(mouseup状态或mousedown状态)

在Javascript中,当我单击滚动条(页面中显示的任何滚动条)并将鼠标悬停在图像上时,图像将再次开始拖动.

图像应该只在鼠标按钮状态下拖动.

所以我试图通过了解鼠标按钮状态(mousedown或mouseup)来解决这个问题

此问题仅存在于IEChrome中,而不是我尝试过的其他浏览器中.

使用Javascript:

document.onmousemove = mouseMove;
document.onmousedown = mouseDown;
document.onmouseup   = mouseUp;

function mouseMove(ev) {

    var mouseButtonState;
    // put code here to get mouseButtonState variable
    console.log('state of mouse is'+mouseButtonState);
}
Run Code Online (Sandbox Code Playgroud)

当我移动鼠标时,程序应显示所需的mouseButtonState 向上向下

我如何知道鼠标按钮的当前状态?

javascript internet-explorer google-chrome mouseup mousedown

6
推荐指数
1
解决办法
3448
查看次数

鼠标移动到img后鼠标不起作用

我正在尝试做一个简单的拖动脚本.这个想法是在鼠标停止时保存位置,在鼠标移动时更新视图,在鼠标移动时停止.问题,mouseup事件无法正常工作.

看代码:

var target = $('a')
var pos = 0;
var dragging = false;

$(document).mousedown(function(e) { pos=e.pageX; dragging = true })
$(document).mouseup(function() { dragging = false })
$(document).mousemove(function(e) {
    if(dragging){ 
        target.css('left', e.pageX-pos);
    }
})  ?
Run Code Online (Sandbox Code Playgroud)

为什么mouseup与"a"标签一起使用:http: //jsfiddle.net/leyou/c3TrG/1/

为什么mouseup无法使用"img"标记:http: //jsfiddle.net/leyou/eNwzv/

只是尝试水平拖动它们.

ie9,ff和chrome也有同样的问题.Windows 7的

jquery drag mouseup

6
推荐指数
1
解决办法
9969
查看次数

MouseUp和DoubleClick都使用Backbone js附加到单独的事件处理函数

我有一个图表应用程序,其中我使用Backbone.js为图表图像的不同"区域"上的鼠标和双击事件附加单独的处理程序.

我需要使用mouseup来检测用户是否在图表图像的"区域"部分单击了左键或右键,这取决于我是否重定向流程.此外,我需要双击放大或最小化包含图表图像的面板.

这是问题..由于每次双击都隐式调用mouseup,我的最大化/最小化功能会干扰左/右按钮单击功能.

我尝试使用各种技术,如超时检查是否单击鼠标后跟双击(如下面的线程所示: 当检测到双击事件时需要取消单击/鼠标事件

它对我不起作用.此外,我有不同的视图对象包含同一页面上的图表,所以我附加了每个事件处理程序的唯一ID来区分它们我还尝试了简单的标志设置重置方法来检测双击并防止鼠标,如果双击发生,但从事件层次结构鼠标在双击之前发生,也失败了.

总而言之,请帮忙!提前致谢

jquery double-click event-handling backbone.js mouseup

6
推荐指数
1
解决办法
3640
查看次数

检测mousedown元素之外的mouseup

我试图检测鼠标(释放鼠标按钮)何时发生在触发mousedown事件的元素之外.我有几个按钮,我改变CSS(通过使用类)与mousedown(按下按钮)和完成点击(mousedown + mouseup).问题是,如果单击元素,则释放元素外部的鼠标按钮,鼠标按钮不会触发.我还尝试在文档上捕获一般的"mouseup"事件,以"重置"分配给元素的类,这似乎也不起作用.

以下是HTML示例:

<div class="qbuttons">
<a id="qb_appointments" href="#" class="appointments"><div>
Schedule a Service<br />
Appointment</div></a>
</div>
Run Code Online (Sandbox Code Playgroud)

这是我用来摆弄元素的jQuery:

var current_qbutton = "";

$('.qbuttons a').mousedown(function() {
    current_qbutton = $(this).attr('id');
    $(this).addClass('active');
});

$('.qbuttons a').click(function() {
    $(this).removeClass('active');
});

$('*').mouseup(function(event) {
    event.stopPropagation();
    alert(current_qbutton);
    if(current_qbutton != "") {
        $('#' + current_qbutton).removeClass('active');
        current_qbutton = "";
    }
});
Run Code Online (Sandbox Code Playgroud)

我已经尝试了不同的鼠标选择器 - 文档,窗口,'body*','html '和' ' - 从我看到的东西看起来鼠标在释放鼠标按钮之外没有触发mousedown元素,因为警报不会发生.

jquery mouseup mousedown

6
推荐指数
1
解决办法
1万
查看次数