当前位置:首页 > jquery

jquery 长按

2026-02-03 18:53:46jquery

jQuery 实现长按事件的方法

在jQuery中实现长按事件可以通过结合mousedownmouseupsetTimeout来实现。以下是具体实现方式:

基础实现

监听mousedown事件启动计时器,若在指定时间内未触发mouseup则视为长按。超过时间后执行长按回调,中途释放则清除计时器。

jquery 长按

var pressTimer;
$(".target").on("mousedown", function() {
    pressTimer = setTimeout(function() {
        console.log("长按事件触发");
        // 长按后的操作
    }, 1000); // 1秒为长按阈值
}).on("mouseup mouseleave", function() {
    clearTimeout(pressTimer);
});

移动端兼容

对于触摸设备需使用touchstarttouchend事件:

jquery 长按

var pressTimer;
$(".target").on("touchstart", function() {
    pressTimer = setTimeout(function() {
        console.log("长按事件触发");
    }, 1000);
}).on("touchend touchcancel", function() {
    clearTimeout(pressTimer);
});

封装为插件

可扩展为jQuery插件方便复用:

$.fn.longPress = function(callback, duration) {
    duration = duration || 1000;
    return this.each(function() {
        var timer;
        $(this).on("mousedown touchstart", function() {
            timer = setTimeout(callback, duration);
        }).on("mouseup mouseleave touchend touchcancel", function() {
            clearTimeout(timer);
        });
    });
};

// 使用方式
$(".btn").longPress(function() {
    alert("长按成功");
}, 1500);

注意事项

  • 移动端需考虑touchcancel事件中断场景
  • 长按时间阈值建议设置在500-2000ms之间
  • 防止长按触发后重复执行操作
  • 在拖拽场景中需要额外处理避免冲突

这种方法无需额外库,纯jQuery实现,适用于大多数需要长按交互的场景。

标签: jquery
分享给朋友:

相关文章

jquery教程

jquery教程

jQuery 教程:基础与实用方法 jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。其核心特点是“写得更少…

jquery 之家

jquery 之家

jQuery 之家相关资源 jQuery 之家是一个提供 jQuery 插件、教程和代码示例的中文资源网站。以下是关于 jQuery 之家的一些有用信息: 网站内容 提供丰富的 jQuer…

jquery api

jquery api

以下是关于 jQuery API 的详细介绍和使用方法: jQuery API 概述 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Aja…

jquery获取

jquery获取

获取元素 使用jQuery选择器获取元素,通过CSS选择器或jQuery特定选择器定位目标元素。常见选择器包括ID选择器(#id)、类选择器(.class)、标签选择器(tag)等。示例: $('#…

jquery页面

jquery页面

jQuery 页面操作指南 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互的操作。以下是 jQuery 在页面中的常见使用方法…

jquery添加

jquery添加

jQuery 添加元素的方法 在jQuery中,添加元素到DOM有多种方式,可以根据需求选择合适的方法。 append() 将内容插入到选定元素的内部末尾处。 $("#container").ap…