2017-10-09 1 views
0

새 툴팁을 열면 자동으로 툴팁을 닫을 수있는 가능성을 찾고 있습니다. Primefaces 6.1을 사용하고 있습니다.새로운 툴팁을 열면 닫습니다.

<p:tooltip for="clientName" showEffect="clip" hideEvent="dblclick" 
    position="bottom"> 

현재로서는 다음과 같이 작동합니다. 내 데이터 테이블의 라벨에 마우스를 올려 놓으면 툴팁이 열립니다. 열린 레이블을 두 번 클릭하면 툴팁이 사라집니다. 그러나 문제는 그 순간에 데이터 테이블 항목을 여러 개 이동하여 실수로 30 개의 툴팁처럼 열 수 있다는 것입니다.

짧은 : 단 한 번에 하나의 툴팁 만 열길 원합니다. 하지만 MouseLeave 이벤트로 툴팁을 닫지는 않습니다.

어떤 제안이 있어도 기쁩니다. 감사.

답변

1

사용 (6.1 문서의 페이지 542)에 PrimeFaces 설명서에 따른되는 툴팁 onShow 또는 onBeforeShow 속성

에서 onShow 툴팁 도시 후 클라이언트 측 콜백을 수행한다.

beforeShow 툴팁이 표시되기 전에 실행될 클라이언트 측 콜백입니다. false를 반환하면 표시되지 않습니다.

그 점에서 다른 모든 툴팁을 숨기려면 자바 스크립트 (jquery)를 호출 할 수 있습니다.

하지만 showDelay를 사용하지 않는 이유는 무엇입니까? defaul 150 대신 500ms?

+0

"거의"작동합니다. 문제는 : beforeShow를 사용할 때 더 이상 열리지 않습니다. onShow를 사용하면 나타나는대로 곧 닫힙니다. 내 js 메서드는 다음과 같습니다. function closeTooltip() { \t PF ('tooltip-pd'). hide(); } showDelay는 좋은 생각이지만 10ms와 같이 레이블 위에 마우스를 올려 놓으면 변경되지 않습니다. 지연을 1000ms로 설정하면 "호버"타이머에 대해 작동하지 않습니다. 내가 어떻게 작동하게 할 수 있는지 생각해보십시오. 하지만 많은 도움을 주셔서 감사합니다 :) –

+0

'beforeShow'와 함께 사용할 때 자바 스크립트에서 명시 적으로 'return true'가 필요합니다. 아무 것도 반환하지 않으면 (틀림없이) 'false'로 해석 될 것입니다. 표시되지 않도록 문서에서 읽을 수있는 것처럼 생각하면됩니다. – Kukeltje

+0

힌트를 보내 주셔서 감사합니다. 방금 추가하는 간단한 시도 : 진정한 반환; 그러나 나는 그것이 틀렸다는 것을 짐작한다. js와 함께 작업하는 방법에 대한 단서가 없습니다. 내가 actully 거기에 써야 할 것을 말해 줄 수 있습니까? 나는 툴팁에 ID "tooltip-pd"를 주었다. –

관련 문제