0

在页面 Index.html 中有一个名为的选择框#choose_content_to_load和一个名为的 div#get_loaded_content

<select id="choose_content_to_load">
<option>Some content from page content.html and div #content</option>
</select

<div id="get_loaded_content">

正如在选择框选项中看到的那样,有一个名为的页面content.html,其中包含一个名为#content. 在当前情况下,使用此脚本单击选项时#content会加载div:#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 被加载到#get_loaded_contentin时才执行Index.htmlindex.html将脚本放在 .js 文件中并content.html共享它并不好,因为它有很多代码。

因此,新脚本需要使用标签直接放入#contenthtml 中,并在加载此 div 时执行。

首先我认为新脚本只需添加即可运行,reload_javascript但后来我意识到执行脚本只是初始化它(我认为)。我希望有人可以帮助我,请记住我尝试学习 jQuery(编码初学者)。

非常感谢。

4

1 回答 1

0

如果我理解正确,您正在将<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); 
    });
}
于 2013-02-22T12:00:54.780 回答