为什么getScript()在我的情况下不起作用

时间:2011-11-03 08:58:09

标签: jquery

我正在尝试根据fiddle中所示的选择加载jQuery插件 JS

$(document).ready(function()
{
 $('img').each(function()
    {
        var th=$(this);
        var className=th.prop('class');
        var clas=['type1','type2','type3','type4','type5','type6','type7','type8','type9','type10'];
        var choice=((jQuery.inArray(className,clas))*1) + 1;
        var str="";
        var src=th.attr('src');
        var titleText=th.attr('alt');
        switch(choice)
        {
            case 1:
                    alert('fall under Type1')
                    str = '<a href="' + src + '" class="cloud-zoom" rel="adjustX: 10, adjustY:-4" target="_blank"/>';
                    th.wrap(''+str+'');
                    break;
            case 2:
                    str = '<a href="' + src + '" class="cloud-zoom"'; 
                    str+= 'rel="'+"position:'inside', showTitle: false, adjustX:-4, adjustY:-4"+'" target="_blank"/>';
                    th.wrap(''+str+'');
                    break;
        }
        if( choice == 1 || choice == 2)
        {
            $("head").append("<link>");
            css = $("head").children(":last");
            css.attr({
             rel:  "stylesheet",
             type: "text/css",
             href: "http://www.professorcloud.com/styles/cloud-zoom.css"
            });
       // In the js file method is invoking on domReady, That is why i am calling manually again on call back after wrapping HTML
            $.getScript("http://www.professorcloud.com/js/cloud-zoom.1.0.2.js", function(){
                $('.cloud-zoom').CloudZoom();
            });
        }
});
});

HTML

<img src="http://cdn.tripwiremagazine.com/wp-content/uploads/images/stories/Articles/best-jquery/serie3.jpg" class="type4" alt="jghdhefyhe" height="100px" width="130px">

在小提琴方法中,调用是在domReady下编写的。这可能会导致问题,因为我正在包装自定义HTML以使该插件工作。请看看上面的小提琴。

2 个答案:

答案 0 :(得分:1)

我认为问题在于您尝试从其他域上的服务器加载脚本。您应该使用$.ajax()并将选项crossDomain设置为true

$.ajax({
  url: 'your url',
  dataType: "script",
  crossDomain: true,
  success: function()
});

答案 1 :(得分:0)

您问题的另一个问题是,您的交换机案例中未设置var src。这会产生一些额外的错误。