我有一张桌子,点击时可扩展/收缩。效果很好,但是存在一个问题,有时用户可能希望复制表中的文本,因此他们的线路合同(点击)

有什么方法可以避免在单击时触发事件,但如果您按住鼠标和/或标记文本则不会?

样本页面:
http://resihop.nu/search?from=&to=&when=&got_car=1&code=

如果您能提供一个示例,我将非常适合,我不习惯使用javascript。 :)

最佳答案

将事件设置为mouseup-而不是click。您还可以检查mousedownmouseup之间的时间长度,以决定是否应处理点击。



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
});

09-25 17:46