2014-11-25 2 views
0

안녕하세요 JS에서 내보기를 개발하고 있어요 및 가로 레이아웃 요소에 대한 클릭 처리기 바인딩에 붙어 있어요. 나는 그 일을 내가 분명히 존재하지 않은 요소와 attachPress를 사용하여 시도하지 않았다 어떤 SAPUI5 : 클릭 이벤트를 가로 레이아웃에 바인딩하는 방법은 무엇입니까?

$("#myHorizontalLayout").bind("click",function(){window.alert()}); 

jQuery를

사용하여 시도했습니다. 도와주세요.

는 업데이트 :

JS보기는 응용 프로그램의 기본보기입니다.

답변

3

$("body").on("click", "#myHorizontalLayout", function(){ 
 
    alert("Hey, you!"); 
 
});
, 그것은 컨트롤의 HTML 실제로이 시점에서 아직 생성되지 않았 음을 수 있습니다. 그러나 바인딩을 지연하더라도 적어도 컨트롤 자체에 바인딩되어있을 때 다시 렌더링 (변경 후 HTML 다시 작성)하면 청취자가 제거됩니다.

(여기 : 레이아웃에) 모든 컨트롤에서 사용할 수있는 일반적인 attachBrowserEvent 기능을 사용하고이 일을하는 적절한 방법 : http://jsbin.com/hijutunefi/1/edit?html,output

attachBrowserEvent 작품,이 예제를 참조 내부적으로 모든 렌더링/다시 렌더링 물건을 처리 모든 브라우저 이벤트는 새 브라우저 이벤트 리스너를 컨트롤의 루트 노드에 연결하므로 은 "클릭"에 대한 있도록, 이벤트 위임을 수행 UI5 가장 일반적인 브라우저 이벤트에 대한 이벤트 및 여러 다른 addEventDelegate 또한 aborjinik에 의해 지적, 사용할 수 있습니다.

또는 일반 jQuery를 메커니즘과 <body> 수준에서 수신하는 것은 일반적으로도 작동합니다.

`
+0

이면 attachBrowserEvent는 특정 노드에 이벤트 리스너를 추가합니다. 많은 이벤트 리스너를 추가하는 대신 이벤트 위임을 http://jsbin.com/kemejojate/1/edit에서도 사용할 수 있습니다. – aborjinik

0

jQuery 1.7부터 .on() 메서드는 이벤트 처리기를 문서에 연결하는 데 선호되는 방법입니다. 이전 버전의 경우 .bind() 메서드는 이벤트 처리기를 요소에 직접 연결하는 데 사용됩니다. 핸들러는 의 jQuery 객체에서 현재 선택된 요소에 연결되므로 .bind() 호출이 발생하는 지점에 해당 요소가 있어야합니다.

Reference here

그래서 onbind를 교체 시도하고 작동 여부를 알려 주시기.

+0

메신저 미안하지만, CSTE 연구진은()'작동하지 않습니다 너무 .. – maniteja

+0

해보십시오 .delegate는() – rottenoats

+0

는'했습니다.위임()'너무 운 ... – maniteja

1

다음 중 작동하지 않는 요소가 attachPress를 사용하여 분명히 존재하지 않는 요소로 시도했습니다. 도와주세요.

이 시점에서 이벤트 처리기를 연결하는 요소가 존재하지 않는다는 의미입니까? 이 경우 처리기를 DOM 계층의 위쪽에있는 컨테이너에 연결하고 클릭 이벤트를 필터링 할 수 있습니다.

예 : on/bind이 작동하지 않는

+0

죄송합니다. 죄송합니다. 아직 작동하지 않습니다. '분명히 존재하지 않는다. '라는 말은 요소와 관련된'.attachPress()'라는 메서드가 없다는 것을 의미합니다. 이름이 – maniteja

관련 문제