繁体   English   中英

jQuery elevateZoom仅在我之前发出alert()时工作

[英]jQuery elevateZoom work only when I put an alert() before

我有这个代码来启动jQuery elevateZoom但是,只有在我之前放置一个alert()时才有效。

我已经尝试使用/不使用load()函数。

jQuery(document).ready(function($){
    alert("Hi");
    $("#sh-product-main-image").load(function(){
        $(this).elevateZoom({
            zoomType: "inner",
            debug : true,
            cursor: "crosshair", 
            zoomWindowFadeIn: 500,
            zoomWindowFadeOut: 500
        }); 
    }); 
});

这是我尝试过的代码的另一种变体:

jQuery(document).ready(function($){
    alert("Hi");
    $("#sh-product-main-image").elevateZoom({
        zoomType: "inner",
        debug : true,
        cursor: "crosshair", 
        zoomWindowFadeIn: 500,
        zoomWindowFadeOut: 500
    }); 
});

这是因为$(document).ready()在加载DOM时发生,而不是在加载所有图像时发生。 警报会导致延迟,并允许加载图像的时间。

以下应该有效:

$(window).on("load", function() {
    $("#sh-product-main-image").elevateZoom({
        zoomType: "inner",
        debug : true,
        cursor: "crosshair", 
        zoomWindowFadeIn: 500,
        zoomWindowFadeOut: 500
    }); 
});

我认为elevateZoom插件只需要完全加载DOM才能正常工作,而不是Page load! (通常建议在页面加载时加载DOM!)

我认为下面的代码就足够了:

$(function() { /* Executed after DOM did load */

  $("img#sh-product-main-image").elevateZoom({
    zoomType: "inner",
    debug : true,
    cursor: "crosshair", 
    zoomWindowFadeIn: 500,
    zoomWindowFadeOut: 500
  });

});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM