2009-05-18 13 views
10

cho một trang nhưcách nhấp hoặc nhấp đúp vào một từ trên trang web để kích hoạt trình xử lý sự kiện?

http://www.answers.com

nếu người dùng nhấp chuột đúp vào bất kỳ từ nào trong trang, một hộp pop-up sẽ xuất hiện và thể hiện định nghĩa cho từ đó.

Tôi có thể nghĩ cách sử dụng tập lệnh DOM để chia nhỏ tất cả các từ trong trang và sau đó làm cho mỗi từ trong số đó đi theo phần tử "span" riêng biệt ... nhưng nếu không thì sẽ không đúng văn bản nằm trong phần tử "p", sau đó nút phần tử "p" được kích hoạt để xử lý sự kiện nhấp đúp, nhưng không có cách nào dễ dàng để nói từ nào được nhấp vào?

+0

Tốt câu hỏi, chức năng gọn gàng, sẽ được xem câu hỏi này –

Trả lời

15

Bạn chỉ cần thêm một sự kiện nhấn đúp chuột để toàn bộ tài liệu, như vậy:

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

Nếu bạn chỉ muốn điều này để làm việc trên đoạn lựa chọn, bạn sẽ thay đổi bộ chọn để p.myclass hoặc một cái gì đó như thế. Điều này bản lề trên thực tế nhấp đúp vào một từ làm nổi bật nó trong trình duyệt. Không thực sự chắc chắn nếu nó chính xác như thế nào answers.com hiện nó, phải trung thực.

+0

đánh bại tôi một vài phút. Tôi định đề nghị điều tương tự. +1 –

+0

Tôi dường như không làm được điều này. http://erxz.com/pb/25570 – radicalmatt

+0

Xin lỗi, vấn đề là chức năng getSelection do người dùng định nghĩa là cửa sổ cloberber.getSelection. Một sửa chữa dễ dàng chỉ là đổi tên chức năng do người dùng xác định. – radicalmatt

5

Ở đây bạn đi, một bài viết trên blog mô tả cách bạn thực hiện việc này bằng cách sử dụng jQuery. thực hiện kiểm tra của mình cũng tương tự như những gì bạn muốn, click cụ thể là đôi một từ kéo lên định nghĩa từ một cuốn từ điển:

Using jQuery and Double clicks to get data