jQuery - 想要隐藏丰富的行:dataTable

问题描述:

我有一个rich:dataTable。我想隐藏这种代码的一行:jQuery - 想要隐藏丰富的行: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不是一个函数错误....

我最初假设我不能隐藏一个具有这种淡入淡出效果的行,但我做了一个简单的其他表,并一切工作正常...

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

+0

什么jQuery的版本是您使用? – yoda 2009-12-08 12:08:17

+0

我在我的源代码页面看到这个:

+0

我认为:jQuery JavaScript Library v1.3.2 – 2009-12-08 12:17:49

element.getInlineOpacity is not a function 

我以前从未见过这一点,所以我Googled了一下。结果呢?它看起来像是(至少在引擎盖下)将jQuery与Prototype或Scriptaculous混合在一起,并且整个事情正在彼此碰撞。

清理并重试。

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

+0

hi Balus。我已经看到,在谷歌,这就是为什么我使用jQuery.noConflict();并用jQuery替换$ ....和其他东西:使用相同的代码,但与其他简单的表(不丰富:dataTable)代码正在工作..... – 2009-12-08 12:19:57

+0

你不应该混合不同JS库的功能。保持它们分开。如果你想使用jQuery,只能使用** jQuery特定的函数等等。 – BalusC 2009-12-08 12:24:37

+0

嗨Balus。我试过用fadeOut(),但我没有收到任何错误,没有发生任何事情... \t \t 2009-12-08 13:25:29

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(); 
+0

我想要的是隐藏所有包含复选框的行,在页面呈现后,使用id checkBoxStatus选中 – 2009-12-08 12:40:53

+0

rich:dataTable是RichFaces中的一个组件,它在turn是一个JSF组件库,它是一个基于Java组件的MVC框架。 – BalusC 2009-12-08 12:48:54

+0

如果你想搜索带有checkBoxStatus ID的东西,你需要'find('#checkBoxStatus')'。但是,它听起来像你的页面上有多个相同ID的元素是invali d并可能导致大量问题... – vitch 2009-12-08 13:49:32