2016-12-15 16 views
0

Я хочу вытереть. Но он не работает для компонента <xp:panel>, но для <div>. Вот мой код:dojo анимация не работает для панели xPage

<xp:panel id="myPanel">This is my panel</xp:panel> 
..... 
dojo.style("myPanel", "height", ""); 
dojo.style("myPanel", "display", "block"); 
var wipeArgs = { 
     node: "myPanel" 
    }; 
dojo.fx.wipeOut(wipeArgs).play(); 

Это не работает либо:

dojo.style("#{id:myPanel}", "height", ""); 
dojo.style("#{id:myPanel}", "display", "block"); 
var wipeArgs = { 
     node: "#{id:myPanel}" 
    }; 
dojo.fx.wipeOut(wipeArgs).play(); 

Но это делает работу:

<div id="myDiv">This is my DIV</div> 
..... 
dojo.style("myDiv", "height", ""); 
dojo.style("myDiv", "display", "block"); 
var wipeArgs = { 
     node: "myDiv" 
    }; 
dojo.fx.wipeOut(wipeArgs).play(); 

Так как же я заставить его работать на XP: Панель ?

ответ

1

Вам необходимо запустить код Dojo внутри звонка XSP.addOnLoad(), чтобы Dojo использовал идентификатор, созданный XPages.

<xp:scriptBlock id="scriptBlock1"> 
    <xp:this.value><![CDATA[ 
    XSP.addOnLoad(function(){ 
     dojo.style("#{id:myPanel}", "height", ""); 
     dojo.style("#{id:myPanel}", "display", "block"); 
     var wipeArgs = { 
       node: "#{id:myPanel}" 
      }; 
     dojo.fx.wipeOut(wipeArgs).play(); 
    }); 
]]></xp:this.value> 
</xp:scriptBlock> 

Кроме того, если вы просто хотите DIV и не Div с источником данных, прикрепленным к нему, то вы можете использовать xp:div вместо xp:panel.

+0

Ну, но я добавляю его к своей кнопке. Я хочу нажать кнопку и выполнить некоторый код SSJS, а затем протрите мою панель onComplete. Если я просто добавлю этот блок в свою панель, он уничтожит его при загрузке страницы. Вот мой код кнопки: <хр: Кнопка Значение = "Метка" ID = "Button3"> \t <хр: EventHandler событие = "OnClick" представить = "истинный" RefreshMode = "NoRefresh"> \t \t <хр: this.action> \t \t \t

+1

OK .. решена таким образом: вар myPanelId = dojo.query (" [идентификатор $ = ': MyPanel' ] ") [0] .id; dojo.style (myPanelId, "height", ""); dojo.style (myPanelId, "display", "block"); var wipeArgs = { \t \t Адрес: myPanelId \t}; dojo.fx.wipeOut (wipeArgs) .play(); –