2014-04-15 10 views
0

저는 프라임 워크 프레임 워크의 도움으로 웹 인터페이스에서 작업하고 있습니다.자바 스크립트를 프라임 객체의 마크 업과 완전히 분리 된 상태로 유지하십시오.

그 인터페이스에서 목표 중 하나는 서로 정보를 공유하지 않고 다른 부분에서 호출을 허용하지 않는 javascript 함수로 코드를 나누는 것입니다. 이는 테스트를 용이하게하고 수와 복잡성을 줄입니다. 가능한 유스 케이스의). 모든 "부"는 캡슐화하여 각 부분 사이에 필요한

(function (window, document, undefined){ 
    var $ = window.jQuery; 

    // main content here 

})(window,document); 

통신은 최소화하고 필요한 하나의 개체가 서로 사이를 통과 DOM 이벤트를 사용하여 제조된다. (이벤트가 포착되지 않은 경우, 작동하지 않는 기능 일 뿐이며, 파손될 경우 j는 작동을 멈추지 않습니다).

jsf + primefaces를 사용하기 전까지는 최소한의 버그가 발견되어 꽤 오랫동안 작업 해 왔습니다.
설명서를 읽으면 primefaces에는 HTML 태그에 매핑되지 않는 많은 XML 태그가 있습니다. 내가해야 할 주요한 것들 중 하나는 <p:ajax>입니다.

이 태그는 HTML의 "on *"속성에 자바 스크립트를 작성하는 HTML3의 이념과 매우 유사한 * 같은 속성에 많이 사용되었습니다. 그래도 <p:ajax>은 항상 <h:inputText> 또는 <p:commandButton>과 같은 특정 XML 요소에 첨부되며 여기에서 내가보기 시작했습니다.

primefaces 문서에는 인라인 속성 *에 대한 정보가 있지만 jsf 또는 primefaces의 개인화 된 DOM 이벤트에 대한 정보를 완전히 찾을 수 없습니다.

primeface에서 어떻게 나타나는지, HTML에서 함수/메소드를 인라인으로 호출 할 수 있도록 자바 스크립트 코드를 변경해야합니다. 상황에 따라 js 코드가 없을 수도 있기 때문에 (이는 해당 페이지에서 필요하지 않은 기능이기 때문에) 많은 작업이 필요합니다.

jsf/primefaces XML (및 관리 할 수있는 전체 HTML 출력)에서 자바 스크립트를 완전히 분리하도록 시스템을 프라임면으로 만들려면 어떻게해야합니까?

편집 : 어디서 볼지 생각이 없어서 이제 원시 코드 소스 코드를 살펴볼 것입니다. 나는 거기에서 더 나은 운을 얻을지도 모른다. 편집

: 한편 나는 다른 키워드를 사용하여 검색을위한 몇 가지 아이디어를 가지고 난이 (참조 : "클라이언트 측 API하기") : 발견이하는 것처럼
http://courses.coreservlets.com/Course-Materials/pdf/jsf/primefaces/users-guide/p-ajaxStatus.pdf

이 내가 원하는 것을 가까이 있지만 보인다 위에서 언급 한 요소에는 존재하지 않습니다. 나는 계속해서 더 많은 것을 찾고자 노력할 것이다.

답변

0

몇 가지 테스트, 조사 등 후 ... 나는 마침내 일어난 일의 전체 이야기를 이해할 수있었습니다.

Primefaces는 모든 작업을 즉시 처리하고있었습니다. <p:ajax>에는 필요한 모든 이벤트를 보낼 수있는 올바른 코드가 있습니다! 문제는 jQuery 자체에있다.

jQuery의 trigger() 메서드 (및 바로 가기)는 jQuery 버블 링 내부의 모든 이벤트를 직접 처리하고 on() (또는 속기)을 사용하여 등록 된 콜백을 호출하는 방식으로 작동합니다.

jQuery의 주된 문제는 이벤트와 동일한 이름을 가진 DOM 요소의 메소드를 사용하려고하기 때문에 DOM에 대한 "클릭"이벤트 만 재전송한다는 것입니다. DOM에서는 (현재) 상황이 발생하는 유일한 상황은 '클릭'이벤트입니다. 그래서 클릭 이벤트가 발생했는데 나머지 이벤트는 발생하지 않았습니다.

그걸로 미스터리와 혼란이 마침내 해결되었습니다. 너!