2017-04-11 46 views
0

我有一組記錄顯示哪裏可以通過單擊所需記錄旁邊的編輯鏈接來編輯單個記錄的信息。點擊鏈接後,我通過JavaScript插入一個編輯模式,並用該記錄的數據填充字段。加載數據之前發生的模式插入

我發現大約60%的時間,這些字段顯示爲空,這意味着模式被插入到DOM中的速度比填充字段要快,我通過拉動記錄數據屬性通過getAttribute()。它必須是毫秒差異。每個編輯按鈕有一組數據屬性:

<span class="edit-btn" data-id="gREwTytnO" data-month="11" data-year="2020" data-name="John Doe"> 
    <span class="fa fa-edit" aria-hidden="true"></span>Edit 
</span> 

這裏是模態線:

<input type="text" placeholder="Month (mm)" class="month-field" id="month" value="' + event.target.getAttribute('data-month') + '" required> 

我然後將其插入到DOM。看起來好像是event.target.getAttribute()還沒有完成從DOM中提取數據,並繼續執行並插入模態。

我有什麼選擇來確保在將模式插入到DOM之前,屬性全部加載?

回答

0

儘管可能有更高效的方法來做到這一點,但在實際顯示模型之前,將所有數據屬性都收集到顯示模式的函數的本地變量中。

通過這種方式,您不會遇到競爭條件,希望event.target.getAttribute()可以在需要價值之前完成工作。

+0

這是要走的路。在我的get函數中,我最終填充了從編輯模式彈出時拉出的一組數據。謝謝。 – Runicode

相關問題