2014-05-17 3 views
1

스트럿츠 2 jQuery 플러그인에는 publish/subscribe 프레임 워크가 내장되어 있습니다.스트럿츠 2 jQuery 플러그인 isSubscribe not working

게시 및 구독 이벤트 (예 : 모눈)를 정의하는 경우 가입 된 함수는 이벤트가 게시 될 때마다 호출됩니다. 자세한 내용은 (Struts 2 jQuery Subscribe is called more than once)

을 참조하십시오.이를 방지하기 위해 사용할 수있는 isSubscribed 방법이 있습니다. 그리드에 대한

같이

<sjg:grid id="gridtable" 
     onBeforeTopics="before_grid_load" > 

는 JS가 될 것입니다 :

$.subscribe('before_grid_load', function(event, data) {  

    if ($('#gridtable').isSubscribed('before_grid_load')){ 
     return ;  
    } 
//go on with function 
} 

문제는 그 $('#gridtable').isSubscribed('before_grid_load') 반환 false 때마다!

답변

2

기능 isSubscribed는 요소 $('#gridtable')에 적용하지만 $(document)에 가입에 jQuery를 그리드 플러그인을 사용합니다. 나는 마지막 요소로 테스트를했는데 그것이 나에게 효과가 없었습니다. 하지만 첫 번째 요소로 시도하고 효과가있었습니다.

스크립트 :

<sjg:grid id="gridtable" 
     onBeforeTopics="beforeTopic" > 
+0

고마워요! 그냥 참고 사항 :'beforeTopic'이'$ ("gridtable") 구독 할 때 ("beforeTopic ..."은 한 번만 호출되고'$ .subscribe ("beforeTopic ...."는 이 솔루션을 사용하면 더 이상 isSubscribed를 호출 할 필요가 없다. –

+1

일반적으로 topic handler에서 정확히 isSubscribed를 호출 할 수 없다. 요소가 요소에 등록되어 있는지 확인하려면 해당 요소에서 요소를 확인할 수 있는지 확인하십시오. –

+0

다른 해결책은 다음에서 찾을 수 있습니다. http://stackoverflow.com/questions/20441178/struts-2- jquery-subscribe-is-once-once/34291480 # 34291480 구독이 끝나면 false를 반환 할 수 있습니다 –

0

는 JSP에 lib 디렉토리를 확인

<%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags"%> 

당신의 머리 태그

<sj:head jqueryui="true" jquerytheme="redmond" /> 
+0

당신이 좀 더 명시 수 : 그리드

<head> <link href="<s:url value="/css/template_styles.css"/>" type="text/css" rel="stylesheet"> <sj:head /> <title>jQuery Grid</title> <script type="text/javascript"> $(document).ready(function(){ console.log("Before subscribe"); $("#gridtable").subscribe("beforeTopic", function(topic, data) { console.log('Topic: '+data, topic); if ($("#gridtable").isSubscribed("beforeTopic")){ console.log('Subscribed: '+data, topic); return; } //go on with function console.log('Not subscribed: '+data, topic); }); console.log("After subscribe"); }); </script> </head> 

? – hari

+0

그리드가 작동 중입니다! 게시 된 이벤트의 isSubscribed 메서드는 항상 false를 반환합니다. –

+1

@AlirezaFattahi 메서드가 아니며 함수입니다. –