jQuery - 想要隐藏丰富的行:dataTable
我有一个rich:dataTable
。我想隐藏这种代码的一行:jQuery - 想要隐藏丰富的行:dataTable
<c:if test="#{not empty documents && 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不是一个函数错误....
我最初假设我不能隐藏一个具有这种淡入淡出效果的行,但我做了一个简单的其他表,并一切工作正常...
你能给我一个关于这个问题的线索吗?
element.getInlineOpacity is not a function
我以前从未见过这一点,所以我Googled了一下。结果呢?它看起来像是(至少在引擎盖下)将jQuery与Prototype或Scriptaculous混合在一起,并且整个事情正在彼此碰撞。
清理并重试。
编辑正如其他人已经指出的,你需要用jQuery fadeOut()
函数替换非jQuery的东西new Effect.Fade()
。
hi Balus。我已经看到,在谷歌,这就是为什么我使用jQuery.noConflict();并用jQuery替换$ ....和其他东西:使用相同的代码,但与其他简单的表(不丰富:dataTable)代码正在工作..... – 2009-12-08 12:19:57
你不应该混合不同JS库的功能。保持它们分开。如果你想使用jQuery,只能使用** jQuery特定的函数等等。 – BalusC 2009-12-08 12:24:37
嗨Balus。我试过用fadeOut(),但我没有收到任何错误,没有发生任何事情...
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();
我想要的是隐藏所有包含复选框的行,在页面呈现后,使用id checkBoxStatus选中 – 2009-12-08 12:40:53
rich:dataTable是RichFaces中的一个组件,它在turn是一个JSF组件库,它是一个基于Java组件的MVC框架。 – BalusC 2009-12-08 12:48:54
如果你想搜索带有checkBoxStatus ID的东西,你需要'find('#checkBoxStatus')'。但是,它听起来像你的页面上有多个相同ID的元素是invali d并可能导致大量问题... – vitch 2009-12-08 13:49:32
什么jQuery的版本是您使用? – yoda 2009-12-08 12:08:17
我在我的源代码页面看到这个:
我认为:jQuery JavaScript Library v1.3.2 – 2009-12-08 12:17:49