내 GWT 애플리케이션에서 JSNI 및 jQuery를 통해 클릭 핸들러를 첨부 한 버튼이 있습니다.GWT : JSNI에서 트리거 된 Window.onResize()는 한 번만 호출됩니다.
private native void attachClickActions() /*-{
$wnd.jQuery("#theButton").click(function() {
// ...
$wnd.jQuery(this).animate({
// ...
}, 500, function() {
@com.google.gwt.user.client.Window::onResize()();
});
});
}-*;
(아니, 우리는 논의 가입하지 않은 여러 가지 이유로 자바 코드의 경우 clickHandler를 통해이 작업을 수행 할 수 없습니다.) 본질적으로
, 사용자가 클릭하십시오 JSNI는 다음과 같이 보입니다 버튼, jQuery animate()
이 호출되고 완료되면 콜백 함수는 Window.onResize()
을 호출합니다. 아주 간단합니다.
그리고 처음으로 작동합니다. 사용자가 버튼을 클릭하면 애니메이션이 발생하고 onResize가 호출됩니다. 그러나 모든 후속 클릭은 animate()
함수가 성공적으로 완료 되더라도 onResize 액션을 실행하지 않습니다. alert()
과 같이 콜백에 넣은 다른 모든 코드는 애니메이션이 완료 될 때마다 발생하기 때문에 콜백에 문제가되지 않습니다. 나는 onResize()
이 애니메이트 액션이 요소의 크기에 변화를 적용하고 onResize()
이 트리거 될 때 변경이 발생했기 때문에 후속 호출되지 않는다는 것을 알고 있습니다.
Window.onResize()
이 처음으로 호출되고 이후 호출이 무시되는 이유는 무엇입니까?