在我寫的Web應用程序中,我有一系列創建網格的div。根據用戶輸入,網格是Y div的X div。使用jQuery懸停功能,我想改變一定距離內所有周圍div的背景顏色。基本上,如果我將鼠標懸停在一個div上,所有4行4列內的div也應該改變其背景顏色。我可以得到這個功能正常,但是當網格變成32×128的div時,存在真正的性能問題,並且懸停效果明顯滯後於鼠標。我幾乎可以肯定,這是因爲DOM中的大量類似的div的,因爲這個問題是不是有當電網是像30 30點如何在使用jQuery懸停的同時提高效率/速度?
這是我的HTML的基本結構:
<div class="table_area">
<div class="table_row" id="row-0">
<div class="cap" data-row="0" data-column="0"></div>
<div class="cap" data-row="0" data-column="1"></div>
...
</div>
<div class="table_row" id="row-1">
<div class="cap" data-row="1" data-column="0"></div>
<div class="cap" data-row="1" data-column="1"></div>
...
</div>
...
</div>
爲了加速搜索DOM,我已經將每一行添加到數組中。因此,$('div.table_row[data-row="0"]')
將在arr[0]
。所以當第8行的div
被徘徊時,我只需檢查arr[4]
到arr[12]
以獲取必要的div。
我認爲這會加快這個過程,因爲我消除了大量的搜索,但懸停中仍然存在非常明顯的滯後。
有沒有什麼公然錯誤的我如何設置?如果有問題,我正在使用最新版本的Chrome。
小心創建一個jsfiddle.net你有什麼? –
你可以設置一個小演示嗎?可能還有其他方面可以優化。 –
分享一些代碼如何? –