javascript - 为什么 dblclick 事件像 click 事件一样工作?

标签 javascript jquery

$('#ajax-links a').live('click', function(e) {
    var url = $(this).attr('href');
    url = url.replace(/^.*#/, '');
    $.history.load(url);
    return false;
});

每当我将“click”替换为“dblclick”时,它仍然表现为单击事件。演示在这里 (http://www.serpere.info/jquery-history-plugin/samples/ajax/),源代码可以从这里下载:https://github.com/tkyk/jquery-history-plugin/tree/master/samples/

最佳答案

尝试在添加 dblclick 时防止单击默认值:

您可以阻止事件的默认操作,而不是 return false;:

如果您不希望事件冒泡抛出 DOM,您可以使用 event.stopPropagation() 函数

$('#ajax-links a').live('click', function(event) {
    event.preventDefault();
});
$('#ajax-links a').live('dblclick', function(event) {
    event.preventDefault();
    var url = $(this).attr('href');
    url = url.replace(/^.*#/, '');
    $.history.load(url);
});

Dblclick 事件仅在 dblclick 时触发:参见:jsfiddle.net/cR5ZS

您认为它在单击时被触发的原因可能是您的链接引用了类似:#/some_page/ 并且您的 dblclick 事件处理程序几乎相同。使用 $.history 插件保存 /some_page/ 并且根据我的经验,$.history 插件的作用几乎相同:获取通过调用解析到的 url 并将其放入哈希:url=/some_page/ 变为 #/some_page/

安德烈亚斯

关于javascript - 为什么 dblclick 事件像 click 事件一样工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7024389/

相关文章:

javascript - AJAX 调用不起作用,因为它继续转到链接

jquery - Bootstrap - 以编程方式附加并显示弹出框到元素

javascript - Node js中路由期间的CORS问题

javascript - 如何在 ElectronJS 中设置窗口名称/标题?

javascript - 我可以检查我的 API key 是否充分隐藏在 Node.js 中以推送到 github 吗?

jquery - div 底部的 Div 不适用于 overflow-y

javascript - 动态加载的复选框未触发

jquery - 使用 beforeSend 并使用 $.post 完成?

javascript - 使用 jQuery 将宽度从 100% 更改为自动时的 css 转换不起作用

javascript - 箭头功能在浏览器中不起作用