¿Cuál es la diferencia entre la función bind() y la función on() en jQuery?
La diferencia entre .bind() y .on():
(1) Si se admite el selector de valor de parámetro. Debido a la naturaleza de propagación de eventos de JavaScript, si se registra un controlador de eventos en el elemento principal, cuando el evento ocurra en el elemento secundario, también se activará el controlador de eventos en el elemento principal.
Si usas on sin configurar un selector, no hay diferencia entre on y bind.
(2) Los controladores de eventos vinculados mediante on están disponibles para adiciones futuras y tienen el mismo efecto que delegado, mientras que el enlace no.
(3) El método de uso de delegado es el mismo que on(), pero el orden de los parámetros es diferente:
Extensiones:
.bind( ) y .on() Aplicaciones prácticas de bind() y .on():
1. bind() es un enlace directo a un elemento, vinculando la dirección local a un conjunto de interfaces. Si no se produce ningún error, bind() devuelve 0. De lo contrario, devuelve -1 y la aplicación puede obtener el código de error correspondiente a través de WSAGetLastError().
Para controladores de eventos
function ClassName(){
this.eventHandler = (function(){
}).bind ( this);
}
2.on() implementa un proxy de eventos que puede vincular eventos a elementos coincidentes. Puede vincular uno o más controladores de eventos a elementos coincidentes.
(1) se utiliza para vincular múltiples eventos a la misma función, por ejemplo:
$ ('div').on('click mouseover', function(){< / p>
//hacer algo
});
(2) Vincula múltiples eventos para diferentes funciones, por ejemplo:
$ (' div').on({
'click': function(){
//hacer algo
},
' mouseover': function(){
//hacer algo
}
});
(3) Proxy de eventos, como como :
$ ('div').
html:
lt botón id="bt1"gt botón1lt;/buttongt;
jq:
$('#bt1').on('click', function(){
$(' body').append('lt; buttongt ;button2lt;/buttongt;');
});
$('body').on('click','.bt2',function(){< / p>
console.log('esto es bt2');
}
Referencia: Enciclopedia Baidu--binding()