Jquery动态加载JS脚本

时间:2014-06-24 16:32:48

标签: javascript jquery html5 asp.net-mvc-4

我正在开发一个项目,我需要在需要时动态加载JS,并且我遇到了麻烦。 为了简单起见,这是一个例子

<script type="text/javascript">
function DemoSelect2() {
    $('#s2_with_tag').select2({ placeholder: "Select OS" });
    $('#s2_country').select2();
}

// Run Select2 plugin on elements
$(document).ready(function () {

    LoadSelect2Script(DemoSelect2);
    WinMove();
});
</script>

<div class="form-group">
<label class="col-sm-3 control-label">Country</label>
<div class="col-sm-5">
<select class="populate placeholder" name="country" id="s2_country">
<option value="">-- Select a country --</option>
<option value="fr">France</option>
<option value="de">Germany</option>
<option value="it">Italy</option>
<option value="jp">Japan</option>
<option value="ru">Russia</option>
<option value="gb">United Kingdom</option>
<option value="us">United State</option>
</select>
</div>
</div>

我在我的JS.js脚本文件中有这个函数来加载名为select2.min.js的JS,该文件位于我名为plugins的文件夹和名为select2的su文件夹中。

function LoadSelect2Script(callback){
if (!$.fn.select2){
    $.getScript('/plugins/select2/select2.min.js', callback);
}
else {
    if (callback && typeof(callback) === "function") {
        callback();
    }
}
   }

注意:我已经有了捆绑来渲染Jquery UI和所有东西。 问题是没有加载脚本 更新: 问题是Getscript试图从以下文件加载文件:Controlername / plugins / select2 / select2.min.js而不是:Root / plugins / select2 / select2.min.js我该如何解决?

1 个答案:

答案 0 :(得分:0)

您可能想尝试.done和.fail方法来查看发生了什么错误。也许路径中的“〜”导致问题。你可以打印出“例外”。

$.getScript( "ajax/test.js" )
  .done(function( script, textStatus ) {
    console.log( textStatus );
  })
  .fail(function( jqxhr, settings, exception ) {
    $( "div.log" ).text( "Triggered ajaxError handler." );
});