2017-03-20 42 views
3

我在vue中有一個組件,我希望在點擊時切換正文上的一個類。單擊組件時單擊正文添加類?

我該怎麼做?我只需要使用JS來定位主體並添加一個類?

還是有更多的vue方式?

對於上下文,我需要在主體中添加一個no scroll類來防止覆蓋菜單的滾動。

+0

我猜你已經把你的vue實例掛載到了身體的子部分,你沒有直接訪問body元素。也許這可以幫助你https://github.com/LinusBorg/portal-vue –

回答

1

我認爲對身體的反應性結合通常是不被接受的。請參閱forum response by Vue team memberthe article he links to。這讓我覺得在點擊一個組件時,沒有一種「vue方式」來改變主體的類。

所以我覺得,就像你說的,用JS瞄準身體是最好的選擇。

+0

與鏈接到外部網站上的答案相反,您是否可以使用一些示例代碼爲答案添加解決方案? –

0

我希望你會有所幫助:

它允許與VUE路由器來控制你的頁面正文類。 當遇到類似問題時寫了這個。

+0

你如何使用你的腳本?你能否讓說明更清楚?我無法讓它工作:((( – Dinuz

0

我想我通過使用觀察者發現了一種優雅的「vue方法」。通過設置一個數據屬性即激活,並點擊切換。您可以添加一個觀察器來檢查它是真是假,基於此將類或樣式添加到主體。

我需要這個功能來打開側面板時禁用身體上的滾動。我使用道具而不是數據,但這不重要。

watch: { 
    // whenever active changes, this function will run 
    active: function() { 
    document.body.style.overflow = this.active ? 'hidden' : '' 
    } 
}