0

如何在Javascript中访问PrimeFaces p:inplace组件的状态?

我需要检查组件是否处于内联状态,以便toggle()在需要时调用函数... AFAIKtoggle()只能更改状态而不能将状态设置为所需值?

4

2 回答 2

1

假设你有这样的东西L

<p:inplace id="basic" widgetVar="myWidget">  
    <p:inputText value="Edit Me" />  
</p:inplace>  

您可以检查是否在jQuery的帮助下打开了就地,就像这样widgetVar

jQuery(myWidget.content).is(":visible")

或者您可以使用:visible选择器和 inplace 的 id 检查它:

附加_display到您的就地元素 id 以检查编辑器是否尚未打开

附加_content到您的就地元素 id 以检查编辑器是否已打开

jQuery("#basic_display").is(":visible")

jQuery("#basic_content").is(":visible")

您可以在展示Primefaces Inplace的浏览器控制台中查看它

于 2012-11-28T09:19:06.653 回答
0

我通过检查ui-inplace-displayui-inplace-content元素的 CSS显示值来实现它:

            $('.ui-inplace-display').filter(function(){
                return $(this).css('display') == 'inline';
            }).toggle();
            $('.ui-inplace-content').filter(function(){
                return $(this).css('display') == 'none';
            }).toggle();

然而,对我来说,它更像是一种解决方案,所以我期待一些更优雅的东西,比如 JavaScript 对象的专用属性中的状态,或者至少是专用的 CSS 类。

于 2012-11-28T09:27:53.497 回答