簡體   English   中英

jQuery點擊事件,但不按住/標記文本事件

[英]Jquery click-event but not holding down/marking text-event

我有一張桌子,點擊時可擴展/收縮。 效果很好,但是存在一個問題,有時用戶可能希望復制表中的文本,因此他們的線路合同(點擊)

有什么方法可以避免在單擊時觸發事件,但如果您按住鼠標和/或標記文本則不會?

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

如果您能提供一個示例,我將非常適合,我不習慣使用javascript。 :)

將事件設置為mouseup而不是click 您還可以檢查mousedownmouseup之間的時間長度,以決定是否應處理單擊。


喜歡的東西, 應該做的伎倆:

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

您也可以像這樣參考第一個TR

$('.generals .odd').click(/*...*/).css("cursor","pointer");

sso只能單擊第一行,而使even tr事件保持空閑。

另一個解決方案是執行mouseup並檢查文本選擇,如下所示:

$('tr').mouseup(function(){
   selection = document.getSelection ? document.getSelection() : document.selection.createRange().text;

   if(!selection)
   {
       //carry on to de-expand
   }
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM