2011-08-11 23 views
7

Duplicar posibles:
jQuery equivalent of JavaScript's addEventListener methodaddEventListener en jQuery

también de un muy buen tutorial de jQuery en: http://itunes.apple.com/in/app/designmobileweb/id486198804?mt=8

Cuál es el equivalente de jQuery para la siguiente declaración;

element1.addEventListener('click',doSomething2,false) 

Si es el método bind(), ¿hay alguna opción para especificar el último parámetro (es decir burbujeo evento o capturar ... verdadero/falso)

Gracias.

+0

Sí, el tercero parámetro 'bind' todavía se puede utilizar a tal efecto: http://api.jquery.com/bind/ –

+1

' false' es el valor predeterminado para todos los controladores de eventos, ya que IE no admite la activación del controlador en la fase de captura. No hay forma de que jQuery lo establezca en 'true'. –

+0

@James: Creo que malinterpretaste el tercer parámetro. Es una función o 'false', pero' false' en este caso significa: * Establecer el tercer argumento en falso asociará una función que evita que ocurra la acción predeterminada y evita que el evento burbujee. *. –

Respuesta

11

Prueba este

// Setting the third argument to false will attach a function 
// that prevents the default action from occurring and 
// stops the event from bubbling. 
$("#element1").bind("click", doSomething2, false); 
+1

Es cierto que vale la pena mencionar que se agregó solo desde la versión 1.4.3 –

+0

Ese no es el equivalente al tercer parámetro 'addEventListener'. Es simplemente un atajo para 'function() {return false; } ' La llamada tal como la escribió tratará 'doSomething2' como datos de evento (y probablemente arroje un error). –

+0

@Felix - Estoy de acuerdo contigo, pero OP quería algo como esto para evitar que el evento burbujee pasando un parámetro. – ShankarSangoli

0

jquerys uso bind method

ejemplo:

document.bind("custom-listener", someCustomFunction, false); 

document.trigger("custom-listener", {jsonArgsKey:jsonValue}); 

function someCustomFunction(json) 
{ 
alert(json.jsonArgsKey); 
} 
+0

¡Olvidaste tu función '$'! ¿No te refieres a '$ (documento) .bind ...' etc.? – Abraham

0

De esta manera:

$(element1).click(doSomething) 

Si desea detener el burbujeo, llame event.stopPropagation() en su función doSomething, así:

function doSomething (event){ 
    event.stopPropagation() 
    // do whatever 
} 

Sin embargo, no hay forma de configurar un controlador de eventos de captura con jQuery.

1

Sí, estoy bastante seguro de que .bind() funcionará como lo necesite. Echa un vistazo a jQuery .bind() docs page Estoy seguro de que puedes descubrir la configuración. código de demostración a continuación:

$(document).ready(function() { 
    $("#element1").bind('click', function() { 
     // do something on click 
    } 
}); 
+2

¡Has olvidado un paréntesis! – Abraham

Cuestiones relacionadas