[英]Jquery click-event but not holding down/marking text-event
我有一張桌子,點擊時可擴展/收縮。 效果很好,但是存在一個問題,有時用戶可能希望復制表中的文本,因此他們的線路合同(點擊)
有什么方法可以避免在單擊時觸發事件,但如果您按住鼠標和/或標記文本則不會?
樣本頁面: http : //resihop.nu/search?from=&to=&when=&got_car=1&code=
如果您能提供一個示例,我將非常適合,我不習慣使用javascript。 :)
將事件設置為mouseup
而不是click
。 您還可以檢查mousedown
和mouseup
之間的時間長度,以決定是否應處理單擊。
喜歡的東西, 這應該做的伎倆:
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.