有没有办法让触摸启动事件不会触发点击事件?

发布于 2025-01-07 11:12:24 字数 232 浏览 1 评论 0原文

当访问者点击图像时,click 事件将被触发。但是,当有人触摸图像时,即使 touchstart 事件也可用,也会触发相同的 click 事件。

我喜欢实际单击(鼠标)事件和触摸事件的不同行为。奇怪的是,在智能手机上使用时甚至会触发 mouseup 事件。无论如何,您可以将鼠标与触摸事件分开吗?

When a visitor clicks on an image the click event will be triggered. However when someone touches the image, that same click event will be triggered, even if a touchstart event is available as well.

I like a different behavior for an actual click (mouse) event and a touch event. The strange thing is, even a mouseup event is triggered when used on a smartphone. Is there anyway you can separate the mouse from the touch events?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

街道布景 2025-01-14 11:12:24
event.preventDefault();

成功了,希望这对人们有帮助!

event.preventDefault();

Did the trick, hope this helps people!

万人眼中万个我 2025-01-14 11:12:24

您可以规范化事件..

请参阅我对此问题的回答:

在 iPad 的 touchend 上调用两次点击事件

您还可以查看 jQuery mobile 源代码来寻找灵感:http://code.jquery.com/mobile/1.0。 1/jquery.mobile-1.0.1.js 从第982行开始

/* 
* "events" plugin - Handles events
*/

(function( $, window, undefined ) {

// add new event shortcuts
$.each( ( "touchstart touchmove touchend orientationchange throttledresize " +
                    "tap taphold swipe swipeleft swiperight scrollstart scrollstop" ).split( " " ), function( i, name ) {

    $.fn[ name ] = function( fn ) {
        return fn ? this.bind( name, fn ) : this.trigger( name );
    };

    $.attrFn[ name ] = true;
});
....

看tap事件:(第1049行)

$.event.special.tap = {

you can normalize an event..

See my answer to this question:

Click event called twice on touchend in iPad

You can also look in the jQuery mobile source code to find inspiration: http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.js Start at line 982

/* 
* "events" plugin - Handles events
*/

(function( $, window, undefined ) {

// add new event shortcuts
$.each( ( "touchstart touchmove touchend orientationchange throttledresize " +
                    "tap taphold swipe swipeleft swiperight scrollstart scrollstop" ).split( " " ), function( i, name ) {

    $.fn[ name ] = function( fn ) {
        return fn ? this.bind( name, fn ) : this.trigger( name );
    };

    $.attrFn[ name ] = true;
});
....

Look at the tap event: (line 1049)

$.event.special.tap = {
山色无中 2025-01-14 11:12:24

这是一种防止 touchstart 后点击的复杂方法。 touchstart 之后传播的点击称为幽灵点击。

谷歌已经实施了一个解决方案。给您。

http://code.google.com/mobile/articles/ fast_buttons.html#ghost

It is a complex way to prevent click after touchstart. The click which propagates after touchstart is called ghost click.

Google has implemented a solution. Here you go..

http://code.google.com/mobile/articles/fast_buttons.html#ghost

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文