使用jQuery.getScript时无法初始化插件(同位素)

时间:2015-02-24 14:31:53

标签: javascript jquery html jquery-isotope

所以我创建了一个在客户端页面上加载HTML的应用程序,我需要通过javascript加载一些脚本并对HTML进行操作。特别是我需要使用JS来获取同位素javascript文件,然后在我们刚创建的HTML上初始化它。

另请注意,我在noConflict模式下运行jQuery,因此脚本不会导致客户端站点出错。在测试我的代码工作正常,如果我硬编码<脚本> HTML中的标记,但这在最终产品上是不可行的。我需要通过JS获取外部脚本,因为它是动态的。问题是我收到以下错误:

"未捕获的TypeError:undefined不是函数"

Here is a fiddle

    <script src="http://code.jquery.com/jquery-1.11.2.min.js" type="text/javascript"></script>

    <style type="text/css">
      div.item {width:200px; height:200px; background:#039; margin:10px;}
    </style>

    <div id="container">
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
    </div>


    <script type="text/javascript">
    $( document ).ready(function() {
      ch_jquery = jQuery.noConflict(true);
        ch_jquery.getScript('http://isotope.metafizzy.co/isotope.pkgd.min.js', function(){
          $('#container').isotope();    
        });
    });
    </script>

任何建议表示赞赏!

1 个答案:

答案 0 :(得分:0)

对于初学者,你没有在jsfiddle示例中包含jQuery库。 然后,您应在jQuery.noConflict函数之外定义$(document).ready()This is a working example

var ch_jquery = jQuery.noConflict(true);
$( document ).ready(function() {
        ch_jquery.getScript('http://isotope.metafizzy.co/isotope.pkgd.min.js', function(){
      $('#container').isotope();    
    });
});

EDIT noconflict的另一个例子就是这个

var ch_jquery = jQuery.noConflict();
ch_jquery( document ).ready(function() {
            ch_jquery.getScript('http://isotope.metafizzy.co/isotope.pkgd.min.js',     function(){
                ch_jquery('#container').isotope();    
            });
        });

JSFIDDLE