Estoy usando el disparador JQuery pero no estoy seguro de cuál es la sintaxis correcta para pasar parámetros en mi situación. Aquí es donde hago la llamada:
$('#'+controlName).trigger(event);
Aquí es donde estoy haciendo el enlace de eventos:
$(window).on('onPartialRendered', onPartialRendered);
Y aquí está mi controlador de eventos:
var onPartialRendered = function () {
.....
};
Todo funciona bien hasta que intento pasar parámetros. ¿Cuál sería la forma correcta de hacerlo según mi ejemplo?
javascript
jquery
usuario517406
fuente
fuente
onPartialRendered
no tiene ningún parámetro en su firma. Debería serloonPartialRendered = function(e, p1, p2)
.Respuestas:
El primer parámetro es siempre una cadena con el nombre del evento y los siguientes parámetros son datos adicionales:
.trigger('foo', [1, 2]); .on('foo', function(event, one, two) { ... });
Un agradecimiento especial por Rocket Hazmat
Ejemplo:
var controller = { listen: function (event, json, string) {} }; $('body').trigger('this_works', [{data: [1, 2, 3]}, 'something']); $('body').on('this_works', function (event, json, string) { controller.listen(event, json, string); });
Remoto parcial:
Por favor, no lo utilice de esta forma. Hay muchos artículos sobre este problema en la red. Esto lleva mucho tiempo y genera tráfico innecesario en la red. Utilice esta forma:
var template = $('#templates #example_template').detach(); var clone = template.clone(); clone.find('.some_field').val('new_data'); clone.attr('id', null); $('table tbody').append(clone);
fuente
.trigger
solo toma 2 argumentos. Debe pasar una matriz (u objeto) de parámetros.var onPartialRendered = function (event,one,two) {