2009-05-18 53 views
10

一個頁面像如何點擊或雙擊網頁上的文字來觸發事件處理程序?

http://www.answers.com

如果在頁面中的任何字用戶雙擊,彈出框會顯示出來,並顯示該單詞的定義。

我能想到的方式來使用DOM腳本分手的所有詞語的頁面,然後進行下一個單獨的「跨度」元素他們每個人去...但在其他方面是不是真的,如果所有的文本是在「p」元素下,然後「p」元素節點被觸發來處理雙擊事件,但是沒有簡單的方法來告訴哪個單詞被點擊了?

+0

問得好,整齊的功能,將密切關注這個問題 – 2009-05-18 16:54:16

回答

15

您只需雙擊事件添加到整個文檔,就像這樣:

function get_selection() { 
    var txt = ''; 
    if (window.getSelection) { 
     txt = window.getSelection(); 
    } else if (document.getSelection) { 
     txt = document.getSelection(); 
    } else if (document.selection) { 
     txt = document.selection.createRange().text; 
    } 
    return txt; 
} 

$(document).dblclick(function(e) { 
    var t = get_selection(); 
    alert(t); 
}); 

如果你只是想這對選擇段落的工作,你會選擇改變p.myclass或類似的東西。這取決於雙擊某個單詞在瀏覽器中突出顯示的事實。不太確定這是answers.com究竟如何做到的,說實話。

+0

打我幾分鐘。我正要提出同樣的事情。 +1 – 2009-05-18 17:10:05

5

在這裏,你可以閱讀一篇博客文章,描述你如何使用jQuery來做到這一點。他的測試實現類似於你想要的東西,即雙擊一個詞從字典拉起定義:

Using jQuery and Double clicks to get data