JQuery 트리거를 사용하고 있지만 내 상황에서 매개 변수를 전달하는 데 올바른 구문이 무엇인지 잘 모르겠습니다. 내가 전화를 거는 곳은 다음과 같습니다.
$('#'+controlName).trigger(event);
다음은 이벤트 바인딩을 수행하는 곳입니다.
$(window).on('onPartialRendered', onPartialRendered);
그리고 여기에 내 이벤트 핸들러가 있습니다.
var onPartialRendered = function () {
.....
};
매개 변수를 전달하려고 할 때까지 모든 것이 잘 작동합니다. 내 예에 따라 올바른 방법은 무엇입니까?
답변
첫 번째 매개 변수는 항상 이벤트 이름이있는 문자열이고 다음 매개 변수는 추가 데이터입니다.
.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);