[英]Execute jQuery script after its being loaded in via jQuery .load
在Index.html頁面中,有一個名為#choose_content_to_load
和一個名為#get_loaded_content
的div
<select id="choose_content_to_load">
<option>Some content from page content.html and div #content</option>
</select
<div id="get_loaded_content">
如selectbox選項所示,存在一個名為content.html
的頁面,其中包含一個名為#content
的div。 在當前情況下,通過使用以下腳本單擊選項,將div #content
加載到#get_loaded_content
:
$(document).ready(function(){
$("#choose_content_to_load").change(function(){
var selectedOption = $('#choose_content_to_load :selected').val();
$containerDiv = $('#get_loaded_content');
$containerDiv.html("");
switch (selectedOption)
{
case "Some content from page content.html and div #content":$containerDiv.load( "content.html #content" , function(){$(document).trigger("reload_javascript");});break;
}
return true;
});
});
如您所見,腳本還觸發所有腳本“ reload_javascript”的“重新加載”。 這是因為div #content
還有一些設計元素需要在加載時執行。這些腳本如下所示:
$(document).on("ready reload_javascript" ,function() {
script
});
這可以正常工作,並且所有加載的元素都可以初始化和工作,這是因為Index.html
和content.html
共享相同的設計腳本(相同的.js文件),因此腳本只需“再次運行”即可工作。 現在解決問題,div #content
需要有一個更大的腳本,該腳本僅在將div加載到Index.html
#get_loaded_content
中時才執行。 將index.html
和content.html
共享的.js文件包含在腳本中是不好的,因為它包含許多代碼。
因此,需要使用標簽將新腳本直接放入#content
html中,並在加載此div時執行。
首先,我認為新腳本僅通過添加reload_javascript
就可以運行,但后來我意識到執行腳本只是初始化它(我認為)。 我希望有人可以幫助我解決這個問題,請記住我嘗試學習jQuery(編碼入門)。
非常感謝。
如果我正確理解您的意思,您正在將<script>
標記加載到內容中並希望其執行? 如果是這樣,請在插入后回撥一段時間。
/**
*This function is supposed to execute script after script insertions
*/
function execute(){
$('#content script').each(function() {
var _script = document.createElement('script');
_script.type = 'text/javascript';
_script.setAttribute('async', 'true');
/**
*IEFIX (IE does not support .innerHTML on createElement)
**/
if(!_script.innerHTML){
_script.text=$(this).html().replace('\\\\',"\\");
}else{
_script.innerHTML = $(this).html().replace('\\\\',"\\");
}
document.body.appendChild(_script);
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.