我有一张桌子,点击时可扩展/收缩。效果很好,但是存在一个问题,有时用户可能希望复制表中的文本,因此他们的线路合同(点击)
有什么方法可以避免在单击时触发事件,但如果您按住鼠标和/或标记文本则不会?
样本页面:
http://resihop.nu/search?from=&to=&when=&got_car=1&code=
如果您能提供一个示例,我将非常适合,我不习惯使用javascript。 :)
最佳答案
将事件设置为mouseup
-而不是click
。您还可以检查mousedown
和mouseup
之间的时间长度,以决定是否应处理点击。
像this这样的东西应该可以解决问题:
var lastMouseUp = 0, lastMouseDown = 0;
$('tr').bind('mouseup mousedown', function(e){
var ms = new Date().getTime();
e.type == 'mousedown' ? lastMouseDown = ms : lastMouseUp = ms;
if(e.type != 'mousedown' && (Math.abs(lastMouseUp - lastMouseDown) < 300))
console.log(Math.abs(lastMouseUp - lastMouseDown) + ' process click') // valid click
});