我正在使用{{=LOAD(...)}}
在我的web2py頁面中注入一個組件,如http://web2py.com/books/default/chapter/29/12/components-and-plugins#LOAD所述,但是我需要在組件加載完成後觸發一些JavaScript。通常情況下,如果通過ajax加載某個東西,則會有成功的回調。如何在web2py中通過{{=LOAD(...)}}
設置其中一個?web2py:如何檢測一個LOAD組件通過ajax加載?
0
A
回答
2
最簡單的方法是設置response.js
在組件的控制器:
def mycomponent():
response.js = 'alert("mycomponent just loaded");'
return dict()
或者,你可以簡單地包括<script>
標籤直接在組件本身,該組件被加載時,將執行。
最後,每當web2py Ajax調用完成時,就會觸發一個ajax:complete
事件。所以,你可以設置一個事件處理程序,並檢查Ajax響應是否是一個組件:
$(document).on('ajax:complete', function(e, xhr, status) {
if (xhr.getResponseHeader('web2py-component-content')) {
alert('A component just loaded.');
}
});
注意,web2py-component-content
頭的存在表明Ajax響應是一個組件。
最後這個方法唯一的缺點是,事件處理程序將被觸發前組件的內容添加到DOM,所以如果事件處理程序需要長時間運行,它可以顯着拖延的外觀組件內容。
相關問題
- 1. 通過LOAD監測組件
- 2. Jquery Live Load - 通過ajax加載表單
- 3. 如何通過ajax加載文件?
- 4. 如何在硒中檢測是否通過ajax加載JavaScript文件?
- 5. jQuery的:如何檢測通過一個Ajax請求
- 6. 通過ajax添加jQuery檢測元素
- 7. Visualforce在頁面加載時通過ajax加載apex組件
- 8. 檢測頁面加載 - ajax
- 9. 如何通過Ajax和Javascript加載一個ruby變量?
- 10. 如何檢測DIV高度它的內容是通過AJAX加載使用jQuery
- 11. highcharts如何通過ajax加載數據
- 12. 通過JQuery Load加載谷歌地圖?
- 13. 通過jquery load()重新加載內容;
- 14. 通過jQuery檢測圖片加載
- 15. 如何檢測load()加載的元素是否已完成加載?
- 16. 當通過iframe下載文件時檢測iframe加載
- 17. 檢測哪個URL從onclick通過AJAX/Jquery加載適當的內容
- 18. Ajax通過jquery加載swf文件
- 19. 如何選擇通過jQuery load()函數加載的元素?
- 20. 通過Ajax加載Google Visualization
- 21. jstree - 通過ajax加載contextmenu
- 22. 加載sonata_type_colletion場通過AJAX
- 23. 通過jQuery加載javascript ajax
- 24. 如何檢測通過JavaScript
- 25. MVC如何檢測通過
- 26. 通過AJAX調用將數據加載到Knockout組件
- 27. 如何確保數據在渲染ReactJS組件之前已通過AJAX加載?
- 28. jquery事件不會觸發通過load加載的內容()
- 29. 通過ajax下載文件
- 30. 通過AJAX從通過ajax加載的頁面加載特定的html內容
我想在客戶端加載後修改DOM(突出顯示一行)。 response.js工作正常,除非組件視圖被緩存。在這種情況下,它不會被髮送。 ajax:complete會得到觸發器,但正如你所提到的,它在內容被添加到DOM之前運行*。這解除了我的修改。有沒有辦法在應用內容之前修改內容? – sherve