2010-06-24 13 views
6

Me gustaría disparar un evento cuando cualquier cosa en la página se hace clic, y luego se procesa normalmente. Por ejemplo, se lanzaría un clic, vería si el objetivo coincidía con algo, alertaría si lo hiciera y luego el evento click continuaría (no preventDefault()).Global jQuery `.click()`

+0

Si hace clic en algo, coincidirá con algo, a menos que realmente haya querido "coincidir con algo específico" –

Respuesta

14
$(document).click(function(e) { 
    // e.target is the element which has been clicked. 
}); 

Este se encargará de todos los eventos de clic a menos que un controlador evita que el evento de burbujeo (mediante una llamada al método de lacaso objeto stopPropagation()).

1
$("body").click(function (event) { 
// Your stuff here 
} 
0

3 opciones para usted:

Esta es la forma en .live() en las obras jQuery. Todo burbujea en la parte superior y coincide con el selector que configuró. http://api.jquery.com/live/

Una forma más eficiente de hacerlo es utilizando .delegate, o proporcionando un contexto para .live() para que no tenga que pasar burbujas a la parte superior. http://api.jquery.com/delegate/

Si desea hacerlo de forma manual, se unen 'clic' con el documento, y utilizar .closest() para encontrar el más cercano selector de juego: http://api.jquery.com/closest/

Es todo el mismo concepto, delegación de eventos como mencionado ya

Cuestiones relacionadas