$('#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/