0

我有一个丰富的:dataTable,我有一个跨度丰富的列。当页面加载时,这个 span 取一些值,例如:true+false 或 true+true 等。

根据这个值,我用 jQuery 隐藏包含这个 span 的 tr,例如:

<rich:jQuery query="ready(function() {
jQuery('#inbox:_inboxTable_').find('span[title=test]').each(function(i, o){
        if (jQuery(this).text() == 'true+false' ){
            jQuery(this).closest('tr').fadeOut();
        }
});
})"/>

在 Internet Explorer 和 Chrome 上一切正常,但在 Firefox 上却有些奇怪: - 当页面正常加载时,tr 被隐藏,但当我执行 ajax 请求(更改页码或大小)时,页面中的所有组件被淡出...

你能给我一个线索吗?

4

2 回答 2

1

听起来好像网页布局是基于表格的,并且以closest('tr')某种方式返回了正文的第一个表格行,其中放置了整个内容。

此外,令我感到奇怪的是,您似乎认为rich:jQuery在每个 ajax 请求之后都执行了相同的查询,因为ready()实际上在页面加载期间执行。您的页面中其他地方没有其他 jQuery/JS 片段吗?还是您的 ajax 请求可能不像应有的那样异步?

顺便说一句,您提供的信息非常简短。请尝试在代码级别而非更高级别详细说明问题。不仅要从最终用户的角度讲述发生了什么,还要从开发人员的角度讲述在代码级别发生了什么。哪些行被执行,哪些不被执行。周围的变量的值是多少。开发人员应该知道的那种事情。

如果尚未完成,请安装Firebug并使用其出色的 Javascript 调试器。

于 2009-12-09T12:02:12.820 回答
0

发现问题了!!!-最接近('tr')在Firefox中具有有害行为。所以,而不是使用:

jQuery(this).closest('tr').fadeOut();

解决方案是按父级使用父级,直到找到跨度的“tr”:

jQuery(this).parent().parent().parent().fadeOut();
于 2009-12-10T10:13:14.683 回答