【问题标题】:Primefaces p:inplace component: how to read state in JavaScript?Primefaces p:inplace 组件:如何在 JavaScript 中读取状态?
【发布时间】:2012-11-28 08:54:37
【问题描述】:

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

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

【问题讨论】:

    标签: javascript primefaces edit-in-place


    【解决方案1】:

    假设你有这样的东西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的浏览器控制台中查看它

    【讨论】:

    • 但这也是一种黑客行为,并且会出现闪烁......但是功能正常
    • 检查本身根本没有闪烁......它只是检查状态......它没有做任何动作......
    【解决方案2】:

    我通过检查 ui-inplace-displayui-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 类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多