tryit img attribute javascript jquery delegates

javascript - img - title label html



¿Por qué no delegar trabajo para desplazamiento? (3)

Estoy tratando de usar jquery delegate para enlazar para desplazar eventos.

html

<div id=''parent''> <div id=''child''>Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah </div> </div>

css

#parent { width:200px; height:200px; border:2px solid black; overflow:auto; } #child { width:300px; height:300px; background:red; }

javascript

$(''#parent'').delegate(''#child'', ''scroll'', function(){ alert(this) })

jsfiddle

http://jsfiddle.net/C6DRR/1/

¿Por qué no funciona?


¿Por qué no delegar trabajo para desplazamiento?

Porque el evento scroll no se desplaza por el DOM.

Pero , en los navegadores modernos (IE> 8), puede capturar eventos de desplazamiento , por ejemplo, a nivel de documento o cualquier contenedor estático para elementos dinámicos. useCapture usar el método addEventListener() javascript que pasa true como parámetro useCapture , jQuery no admite la fase de captura:

Nota: en su ejemplo, el evento de scroll ocurre en el nivel de #parent , no en #child

document.addEventListener(''scroll'', function (event) { if (event.target.id === ''parent'') { // or any other filtering condition console.log(''scrolling'', event.target); } }, true /*Capture event*/);

-MANIFESTACIÓN-

Para obtener una explicación sobre la diferencia entre la captura / propagación de eventos, consulte here o there .

Tenga en cuenta que un evento capturado siempre se activa antes que cualquier otro evento de propagación del mismo tipo.



creo que esto puede atar tu pergamino

$(''#child'').live(''keyup'', function() { var el = $(this); if (!el.data("has-scroll")) { el.data("has-scroll", true); el.scroll(function(){ //doscrollaction(el); }); } doscrollaction(el); });

según lo solicitado por op:

cambio el css, por lo que el niño se desborda y uso jquery.scroll y funciona, sin embargo, no hay un evento de ''scroll'' como el que tiene para jquery, no sé que de todos modos, de ahí la razón por la cual bin, live, etc. no se puede configurar para scroll y también por qué tu deligate no funcionará