0

我有一个rich:dataTable. 我想用这段代码隐藏一行:

<c:if test="#{not empty documents &amp;&amp; documents.size!=0}">
    <rich:jQuery selector="#_inboxTable_ tr"
        query="ready(function() {
            jQuery.noConflict();
            if ( jQuery(this).find('checkboxStatus').attr('checked', true)) {
                new Effect.Fade(jQuery(this));
            }
        })"
    />
</c:if>

问题是我收到:element.getInlineOpacity is not a function error....

我最初假设我无法使用这种淡入淡出效果隐藏一行,但我制作了一个简单的其他表,一切正常......

你能给我一个关于这个问题的线索吗?

4

2 回答 2

0
element.getInlineOpacity is not a function

我以前从未见过这个,所以我用谷歌搜索了一下。结果是什么?看起来您(至少在幕后)将 jQuery 与 Prototype 或 Scriptaculous 混合在一起,并且整个事情都在相互碰撞。

清理它并重试。

正如其他人已经指出的那样编辑new Effect.Fade(),您需要用 jQueryfadeOut()函数替换非 jQuery 的东西。

于 2009-12-08T12:12:11.707 回答
0

Effect.fade不是可能导致您出现问题的 jquery 代码。特别是因为您正在向它传递一个 jquery 对象。您可以尝试将原始 DOM 元素传递给它,例如

if ( jQuery(this).find('checkboxStatus').attr('checked', true)) {
    new Effect.Fade(this);
}

再说一次,我不确定这整个丰富的表格到底是什么......或者你到底想要做什么......你想淡出任何带有选中复选框的表格行吗?是什么checkboxStatus?它是一个类(在这种情况下,上面的代码中应该有一个.)?

根据您尝试做的事情,这样的事情可能是一种更 jQuery 的方法:

jQuery(this).find('.checkboxStatus:checked').parent('tr').fadeOut();
于 2009-12-08T12:21:51.673 回答