2014-03-31 115 views
0

我這樣做是爲了適用於經典表中的一些風格(古典表= trthtd在裏面。jQuery CSS如何避免閃爍?

$('table').css({ 
     'border-collapse': 'collapse', 
     'margin': 'auto' 
    }) 
    .attr({ 'cellpadding': '5px' }) 
    .find('tr') 
    .css({ 
     'border-left': '1px solid black', 
     'border-right':'1px solid black' 
    }) 
    .find('th') 
    .parent() 
    .css({ 
     'border':'1px solid rgb(50,170,180)', 
     'border-left': '10px solid rgb(0,120,130)', 
     'border-right':'10px solid rgb(0,120,130)', 
     'font-size': '2em' 
    }); 

唯一的問題是,這種代碼在「refresh()」所以當它被調用時,如果表中沒有任何變化,那麼仍然存在「閃爍」,因爲它首先應用的樣式在所有'tr'之後,然後僅在之後,修改它爲tr,其中包含th(通過parent())向他們展示'更大'。

換句話說:tr其中包含th單元格有較大的顯示。 我希望不要閃爍。

你會如何做到這一點?

+0

你能不能只有在事情發生變化時纔打電話給我 – aurbano

+2

爲什麼不使用任何CSS規則呢? –

+0

因爲我希望它是完整的jQuery(請參閱http://www.doonoo.fr/) –

回答

0

我已經想出瞭解決的辦法是:

/* select tr that contain only th and not td */ 
    el.find("tr:has(th):not(:has(td))").css({ 
     'border':'1px solid rgb(50,170,180)', 
     'border-left': '10px solid rgb(0,120,130)', 
     'border-right':'10px solid rgb(0,120,130)', 
     'font-size': '2em' 
    }); 
    /* select tr that contain only td and not th */ 
    el.find("tr:has(td):not(:has(th))").css({ 
     'font-size': '1.4em' 
    }); 
0

你應該使用CSS這些樣式,然後jQuery的.addClass如果需要,動態地將它們應用到元素..