이전에 이런 질문이 있었지만 답변을 찾지 못한 행운이 없었습니다. 아마도 내가 모르는 용어 일 겁니다.이벤트 처리기에서 반환 값을 재정의 하시겠습니까?
jQuery 이벤트 핸들러는 트리거 된 요소 이외의 요소를 리턴 할 수 있습니까?
일반적으로 요소에 대해 jQuery 이벤트를 트리거하면 해당 요소는 이벤트 처리기에서 반환됩니다. 대신 다른 요소를 반환하는 방법이 있습니까? (등 다른 것보다 event.target
, event.currentTarget
)
내 HTML이다 :
<div id="content">
<div id="wrapper">
<div class="instance">
</div>
</div>
</div>
내가 #wrapper
에 대한 사용자 정의 jQuery를 이벤트를 만들 경우에, 나는 할 수의 이벤트 핸들러는 .instance
을 반환?
$('#content').on('new.instance', '#wrapper', function(event) {
var wrapper = $(event.currentTarget);
var instance = wrapper.find('div.instance').first();
var newInstance = instance.clone(true, true);
newInstance.appendTo(wrapper);
return newInstance;
});
var returnValue = $('#wrapper').trigger('new.instance');
console.log('returnValue.html():', returnValue.html()); // #wrapper, not .instance
내가 new.instance
이벤트 핸들러는 .instance
요소를 반환 할 수 있습니다 :
여기 내 자바 스크립트입니까? 그렇다면 코드에서 무엇을 놓치고 있습니까?
이 설정이 작동하지 않습니다, 이벤트 핸들러. (...)에 값 (적어도 이런 식으로)와'$ (...)를'입니다 반환하지 않습니다 콜백의 리턴 값이 아니라 jQuery 콜렉션을 리턴 할 것이다. 이벤트 처리기에서 필요한 작업을 수행 할 수 없습니까? –
예.'.instance'가'bubblingPhase'에있을 때 같은 경로에 있다는 event.chain에 있기 때문에. '. 인스턴스 '에서 정확히 무엇을 기대 하시겠습니까? '.instance'를 e.target으로 가져올 수 있습니다. – zer00ne
기본적으로 생성자로 jQuery 이벤트를 사용할 수 있는지 확인하려고했습니다. 함수에서 새로운'.instance'를 끌어 올렸지 만 반환 값에서 가져올 수 있다면 훨씬 더 깨끗합니다. – GreenRaccoon23