簡體   English   中英

通過jQuery .load加載后執行jQuery腳本

[英]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.htmlcontent.html共享相同的設計腳本(相同的.js文件),因此腳本只需“再次運行”即可工作。 現在解決問題,div #content需要有一個更大的腳本,該腳本僅在將div加載到Index.html #get_loaded_content中時才執行。 index.htmlcontent.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM