0

我在我的页面http://www.dynamicdrive.com/dynamicindex4/imagemagnify.htm中使用了 Dynamic Drive Jquery 图像放大镜。

我在两个单独的域上加载了页面 - HTML 是相同的,所有链接(css/js/images)都是我的测试服务器的完整 http 字符串。标题如下所示:

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    <script type="text/javascript" src="http://slim.bobpitch.com/DS/js/jquery.magnifier.js">

但是,在一个域上,页面加载完美,但 jquery 不工作,在另一个域上 jquery 工作,但页面格式已损坏。我在第一页遇到的错误是:

    Uncaught TypeError: Cannot call method 'magnify' of undefined 

指的是这段脚本:

    jQuery.fn.imageMagnify=function(options){
var $=jQuery
return this.each(function(){ //return jQuery obj
    var $imgref=$(this)
    if (this.tagName!="IMG")
        return true //skip to next matched element
    if (parseInt($imgref.css('width'))>0 && parseInt($imgref.css('height'))>0 || options.thumbdimensions){ //if image has explicit width/height attrs defined
        jQuery.imageMagnify.magnify($, $imgref, options)
    }
    else if (this.complete){ //account for IE not firing image.onload
        jQuery.imageMagnify.magnify($, $imgref, options)
    }
    else{
        $(this).bind('load', function(){
            jQuery.imageMagnify.magnify($, $imgref, options)
        })
    }
})

我真是百思不得其解,只有一个狂热的 CSS tinkerer,我对java JavaScript 的了解竟然可以写在一个很小的东西的背面。为什么它适用于一个域而不适用于另一个域?

4

3 回答 3

2

检查您是否在两台机器上都有互联网。你能从两台机器上访问http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js吗?此错误的原因是,当您尝试调用magnifyjQuery 时未加载。所以你不能在没有 jQuery 的情况下调用插件。或者如果您在插件之后注册 jquery,它将重置所有已加载的插件

于 2012-01-12T10:38:42.123 回答
0

我认为错误在于对 magnify() 的调用这一事实意味着放大镜在加载时出现问题

<script type="text/javascript" src="http://slim.bobpitch.com/DS/js/jquery.magnifier.js">

否则你会得到一个错误,抱怨 jQuery 不是一个函数,所以检查从域加载该文件没有问题(如果脚本加载正确,请检查 firebug)

于 2012-01-12T10:55:03.447 回答
0

检查应用程序是否引用了不同版本的 jquery 文件

于 2013-01-12T15:29:33.530 回答