【发布时间】:2012-11-28 08:54:37
【问题描述】:
如何在Javascript中访问PrimeFaces p:inplace组件的状态?
我需要检查组件是否处于 inline 状态,以便在需要时调用 toggle()function...AFAIK toggle() 只能更改 状态而不是将状态设置为所需的值?
【问题讨论】:
标签: javascript primefaces edit-in-place
如何在Javascript中访问PrimeFaces p:inplace组件的状态?
我需要检查组件是否处于 inline 状态,以便在需要时调用 toggle()function...AFAIK toggle() 只能更改 状态而不是将状态设置为所需的值?
【问题讨论】:
标签: javascript primefaces edit-in-place
假设你有这样的东西L
<p:inplace id="basic" widgetVar="myWidget">
<p:inputText value="Edit Me" />
</p:inplace>
您可以在 widgetVar 和 jQuery 的帮助下检查 inplace 是否已打开,就像这样
jQuery(myWidget.content).is(":visible")
或者您可以使用 :visible 选择器和就地的 id 进行检查:
将 _display 附加到您的就地元素 ID 以检查编辑器是否尚未打开
将 _content 附加到您的就地元素 ID 以检查编辑器是否已打开
jQuery("#basic_display").is(":visible")
jQuery("#basic_content").is(":visible")
您可以在陈列柜Primefaces Inplace的浏览器控制台中查看它
【讨论】:
我通过检查 ui-inplace-display 和 ui-inplace-content 元素的 CSS display 值实现了它:
$('.ui-inplace-display').filter(function(){
return $(this).css('display') == 'inline';
}).toggle();
$('.ui-inplace-content').filter(function(){
return $(this).css('display') == 'none';
}).toggle();
但是,对我来说,它更像是一种破解而不是一种解决方案,所以我期待一些更优雅的东西,例如 JavaScript 对象的专用属性中的状态,或者至少是专用的 CSS 类。
【讨论】: