2011-10-07 47 views
1

在javascript/jQuery中,是否可以將函數綁定到DOM元素的類名更改或被分配新類?JavaScript將事件綁定到類名的更改

+0

當然,用這個:http://api.jquery.com/attr/ – JellyBelly

+0

@JellyBelly可以告訴我當前的類名 - 但是當它發生變化時觸發事件有點超出.attr()的範圍。 – jammypeach

+0

對不起,我已經理解了相反的情況,即您想要更改類元素的事件的發生。 :S – JellyBelly

回答

3

不,在更新類時沒有廣泛支持的事件觸發。你必須進行民意調查。有些瀏覽器支持DOM mutation events,但它從未完全支持跨瀏覽器,請參閱鏈接頁面上的警告。

很明顯,如果它是你的代碼改變了類,你可以創建一個函數來使用它,並且總是使用該函數而不是直接改變它,但是如果你想在代碼之外尋找它的改變,我沒有看到投票的替代方案。

如果您進行了輪詢,請務必在所有目標瀏覽器上進行測試,並儘可能在輪詢代碼中儘可能少地進行輪詢。過度使用它很容易(減慢頁面速度)。

+0

偉大的答案,謝謝。我不打算實施這個IRL,更多的理論問題:) – jammypeach

+1

@jammy:高興地幫助。 FWIW,我想我會看到更新'className'時是否觸發了事件(在支持它的瀏覽器上)。它確實(http://jsbin.com/azuhix),至少在Firefox上。但是,Chrome和IE以及其他許多人不支持突變事件。我認爲人們已經決定他們的體重太重了。 –

相關問題