当前位置:首页 > jquery

jquery 长按

2026-02-03 18:53:46jquery

jQuery 实现长按事件的方法

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

基础实现

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

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

移动端兼容

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

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 相关资源的中文网站,提供插件、教程、代码示例等内容。以下是相关信息整理: jQuery 之家网站内容 该网站通常包含以下资源: jQuery 插件…

jquery 菜鸟

jquery 菜鸟

jQuery 入门指南 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。以下内容适合初学者快速上手。 引入 jQuery 在…

jquery教程

jquery教程

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

jquery 面试题

jquery 面试题

jQuery 面试题常见考点 DOM 操作 选择器使用:$("#id"), $(".class"), $("tag") 元素增删改查:append(), remove(), html(),…

jquery 元素

jquery 元素

jQuery 元素选择与操作 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。以下是 jQuery 中常用的元素选择与操作方法…

jquery添加

jquery添加

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