2013-07-15 43 views
0

我有jquery函數,如果我點擊一個html框,我得到一個小的信息框,但我的問題是,我可以有兩個不同的功能,如果我點擊框,我得到小信息框,但如果我做doubleclick,那麼我應該去其他網頁?我的代碼是這麼寫的:1 html對象 - 不同的功能(單擊和雙擊)

<div onclick="getInofbox(id)"><img src="image.jpg" /></div> 

在點擊我只得到與內容的小盒子,我不能發現任何DoubleClick選項。

回答

1

您可以使用dblclick() jquery事件。

$('div').dblclick(function() { 
    alert('Double click'); 
}); 

但根據jQuery API文檔,不建議將click和dblclick事件處理程序用於相同的HTML元素。你可以參考API文檔here

入住這demo

回答你這個問題:「我現在已經離開這個解決方案,並打開只鏈接第一個信息框,它是可能的,如果我在一個元件上點擊並獲得信息框,然後如果我點擊其他框,點擊後應該是第一個框關閉?

您可以註冊點擊這兩個鏈接,當打開第二個信息框只需關閉第一個信息框。

你檢查this demo,在這個我已經使用jQuery UI對話框(這不是模態對話框),並關閉第一個對話框點擊第二個。

+0

我現在已經離開這個解決方案,並打開只鏈接第一個信息框,它是可能的,如果我在一個元件上點擊並獲得信息框,然後如果我點擊其他框後,單擊應第一個箱子關了? –

1

爲了有一個點擊同一個元素上雙擊事件,使用超時:

var timeout, doubleClick = false; 

$('p').click(function() { 
    timeout = setTimeout(simpleClick, 500); 
}); 

$('p').dblclick(function() { 
    doubleClick = true; 
    clearTimeout(timeout); 
    alert('Double click'); 
}); 

function simpleClick() { 
    if(!doubleClick) { 
     alert('Simple click'); 
    } 
    doubleClick = false; 
} 

在這裏,你有0.5秒的超時值。如果僅檢測到簡單的點擊,則會調用該功能進行簡單的點擊。否則,它會清除超時並轉到雙擊功能。

An exemple on jsfiddle.