jQuery奇怪的行为

时间:2009-12-09 08:13:32

标签: jquery ajax jsf richfaces

我有一个很丰富的: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请求(更改页码或大小)时,页面中的所有组件都会淡出...

你可以给我一个线索吗?

2 个答案:

答案 0 :(得分:1)

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

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

您提供的信息非常简短。请尝试在代码级别详细说明问题,而不是从更高级别。不仅要告诉最终用户的观点,还要告诉开发人员在代码级别发生了什么。什么行被执行,什么不行。变量的值是什么?开发人员应该知道的那种事情。

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

答案 1 :(得分:0)

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

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

解决方案是使用parent by parent,直到找到span的'tr':

jQuery(this).parent().parent().parent().fadeOut();