2009-05-18 13 views
10

de una página comocómo hacer un clic o hacer doble clic en una palabra en una página web para activar un controlador de eventos?

http://www.answers.com

si el usuario haga doble click sobre cualquier palabra en la página, un cuadro de pop-up se mostrarán y muestra la definición de esa palabra.

Puedo pensar en una forma de utilizar secuencias de comandos DOM para dividir todas las palabras en la página y luego hacer que cada una de ellas pase por un elemento "span" separado ... pero de lo contrario no es cierto que si todas las el texto está debajo de un elemento "p", luego el nodo del elemento "p" se activa para manejar el evento de doble clic, pero no hay una manera fácil de decir en qué palabra se hace clic.

+0

Buena pregunta, la funcionalidad ordenada, estará pendiente de esta pregunta –

Respuesta

15

Sólo tiene que añadir un evento doble click para todo el documento, así:

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

si sólo quería que esto funcione en los párrafos seleccionados, que iba a cambiar el selector de p.myclass o algo por el estilo. Esto depende del hecho de que hacer doble clic en una palabra lo resalta en los navegadores. No estoy seguro si es exactamente como lo hace answers.com, para ser honesto.

+0

Batir unos minutos. Estaba a punto de sugerir lo mismo. +1 –

+0

Parece que no puedo hacer que esto funcione. http://erxz.com/pb/25570 – radicalmatt

+0

Lo sentimos, el problema fue que la función getSelection definida por el usuario está arruinando window.getSelection. Una solución fácil es simplemente cambiar el nombre de la función definida por el usuario. – radicalmatt

5

Aquí tienes, un artículo de blog que describe cómo hacerlo usando jQuery. Su puesta en práctica de prueba es similar a lo que quiere, es decir, hacer doble clic una palabra se detiene en la definición de un diccionario:

Using jQuery and Double clicks to get data

Cuestiones relacionadas