Я использую триггер JQuery, но не уверен, какой синтаксис правильный для передачи параметров в моей ситуации. Вот куда я звоню:
$('#'+controlName).trigger(event);
Вот где я выполняю привязку события:
$(window).on('onPartialRendered', onPartialRendered);
А вот и мой обработчик событий:
var onPartialRendered = function () {
.....
};
Все работает нормально, пока я не попробую передать параметры. Каким будет правильный способ сделать это согласно моему примеру?
javascript
jquery
user517406
источник
источник
onPartialRendered
подпись не имеет параметров. Так и должно бытьonPartialRendered = function(e, p1, p2)
.Ответы:
Первый параметр - это всегда строка с именем события, а следующие параметры - это дополнительные данные:
.trigger('foo', [1, 2]); .on('foo', function(event, one, two) { ... });
Особая благодарность за Rocket Hazmat
Пример:
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); });
Удаленный частичный:
Пожалуйста, не используйте этот способ. В сети много статей об этой проблеме. Это занимает много времени и генерирует ненужный трафик в сети. Пожалуйста, используйте этот способ:
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);
источник
.trigger
принимает только 2 аргумента. Вам нужно передать массив (или объект) параметров.var onPartialRendered = function (event,one,two) {