如何在Portlet中注册IcePush监听器?

时间:2011-08-03 11:30:06

标签: javascript liferay icefaces

我想在IcePush Render更新上执行一些自定义代码。 IcePush本身正在工作(也是多个portlet)

所以我想要做的就是将图像调整到给定的宽高比并放置标记引脚(从谷歌地图中获知)。但是这些标记(和图像)是通过IcePush动态更新的。

因此,如果我使用JQuery的ready(),它第一次工作,但在页面更新后失败。

问候弗洛里安

1 个答案:

答案 0 :(得分:0)

我已经解决了!如果您更改JS代码,它将在AJAX更新后执行。 像这样:

    <script type="text/javascript">
        function resizeStage() {
            var prefWidth=maxWidth*(1+(0.1*zoomFactor));
            jQuery(".slide_" + slideUUID).width(prefWidth);
            var actualWidth=jQuery(".slide_" + slideUUID).width();
            jQuery(".slide_" + slideUUID).height(actualWidth * 3 / 4); // Fix to 4x3
        }
        // This will be executed after AJAX Update
        // Because the var slideUUID changes after each AJAX Update
        var slideUUID = "#{navigationBackingBean.currentSlide.uuid}"; // To identify slide and to execute JS after AJAX udpate!

        resizeStage();
        jQuery(window).unbind('resize', resizeStage)
        jQuery(window).resize(resizeStage);
    </script>