Vue 接收數據for循環渲染出的標簽jQuery渲染的點擊事件無效
Vue在渲染頁面的時候使用jQuery的時候會發現當在created生命周期中獲取后台數據,寫在 mounted 生命周期的jquery渲染的點擊事件不管用了。
理論上,mounted是界面html生成結束才會開始執行的,應該是可以的,但實際效果就是不行。
原因
問題的原因出現在,jquery確實在界面HTML生成之后執行了,但是當時向后台請求的數據還沒請求回來,當請求回來用for循環重新渲染數據后,jquery已經執行完了,所以說新數據渲染的標簽並沒有jquery
的方法。
解決辦法
使用vue不適合jquery來渲染數據,如果非得用jquery渲染的話,比較好的辦法就是使用一個偵聽器(watch)來監聽數據的變化,當請求回數據來的時候在使用jquery渲染。
當然這還有問題,就是請求回來數據不代表已經在界面for循環完了,所以要延時10毫秒左右之后再執行jquery渲染,這樣,就解決了這個問題。

設置一個偵聽器偵聽 goodsDetails 的變化,當請求回數據,賦值給 goodsDetails 時,goodsDetails 發生變化,被偵聽器檢測到,調用useJquery 方法,重新渲染。

調用jquery方法渲染的時候,使用計時器延時10毫秒左右。
完成!
