Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用缩略图切换基础图像-Magento_Javascript_Php_Html_Magento_Thumbnails - Fatal编程技术网

Javascript 使用缩略图切换基础图像-Magento

Javascript 使用缩略图切换基础图像-Magento,javascript,php,html,magento,thumbnails,Javascript,Php,Html,Magento,Thumbnails,我尝试在单击时(在产品页面下)切换带有缩略图的基本图像。由于某种原因,我根本无法让它工作。以下是我创建缩略图的代码: <?php if (count($this->getGalleryImages()) > 0): ?> <div class="desktop more-views"> <ul class="product-image-thumbs"> <?php $i=0; foreach (

我尝试在单击时(在产品页面下)切换带有缩略图的基本图像。由于某种原因,我根本无法让它工作。以下是我创建缩略图的代码:

<?php if (count($this->getGalleryImages()) > 0): ?>
    <div class="desktop more-views">
        <ul class="product-image-thumbs">
            <?php $i=0; foreach ($this->getGalleryImages() as $_image): ?>
                <?php if ($this->isGalleryImageVisible($_image)): ?>
                    <li>
                        <a class="thumb-link" href="#" title="<?php echo $this->escapeHtml($_image->getLabel()) ?>" data-image-index="<?php echo $i; ?>">
                            <img src="<?php echo $this->helper('catalog/image')->init($this->getProduct(), 'thumbnail', $_image->getFile())->resize(75); ?>"
                                 width="75" height="75" alt="<?php echo $this->escapeHtml($_image->getLabel()) ?>" />
                        </a>
                    </li>
                <?php endif; ?>
                <?php $i++; endforeach; ?>
        </ul>
    </div>
<?php endif; ?>
有人知道我做错了什么吗?我已经遵循了link的解决方案,但它们不起作用!我想对那篇文章发表评论,但我没有足够的声誉这么做(任何帮助都将不胜感激

编辑:以下是控制台上显示的错误:


每次我单击缩略图时,最后一个最大的错误会一次又一次出现…

您是否有意在jquery中使用“$j”而不是“$”-因为如果是这样,您需要添加:var$j=$.noConflict();为了给它适当的引用,您可能希望在jquery加载后调用它,或者至少在有注释“//在缩略图单击时触发图像更改事件”的地方调用它……但是,我想知道,当您尝试运行代码时,控制台会显示哪些错误?看起来您有一些问题……但看起来您是问题在于没有包含JQuery库。在不了解更多信息或不了解整个代码库的情况下,我建议将JQuery CDN包含在html的顶部。然后重新运行,这是否解决了控制台中的大多数错误?实际上-查看这意味着您包含的jquery有一些不好的特性或其他问题。将引用jquery.min.js的地方替换为cdnperfect-几乎在那里,您有两个选项。您可以找到“$j”的每个实例,并将其替换为“$”(这是我建议的,因为您可能一开始并不希望将其作为$j),或者您可以通过添加:var$j=$来强制它;在代码顶部附近-这将让所有人知道,当您使用“$j”时,您的意思是“$”,这真的不足以让人不加猜测。我建议一步一步来。暂时忘记图像切换,只需注册一个click事件,如中所示,只需在单击某个对象时提醒它“hello”。一旦工作正常,让它记录在控制台上单击的实际元素。您真的应该发布到目前为止您已经尝试过的所有不同的东西,以使其工作……您是否有意对jquery使用“$j”而不是“$”——因为如果这样,您需要添加:var$j=$.noConflict();为了给它适当的引用,您可能希望在jquery加载后调用它,或者至少在有注释“//trigger image change event on thumbnail click”的地方调用它。。。但是,我想知道,当您尝试运行代码时,控制台会向您显示哪些错误?看起来您有一些问题..但看起来您的主要问题是没有包含JQuery库。在不了解更多信息或不了解整个代码库的情况下,我建议在html的顶部包含jQueryCDN。然后重新运行,这是否解决了控制台中的大部分错误?事实上-查看第1个错误“missing(missing))after…,这意味着您包含的jquery有一些不好的字符或其他问题。将引用jquery.min.js的地方替换为cdnperfect-几乎在那里,您有两个选项。您可以找到“$j”的每个实例,并将其替换为“$”(这是我建议的,因为您可能一开始并不希望将其作为$j),或者您可以通过添加:var$j=$来强制它;在代码顶部附近-这将让所有人知道,当您使用“$j”时,您的意思是“$”,这真的不足以让人不加猜测。我建议一步一步来。暂时忘记图像切换,只需注册一个click事件,如中所示,只需在单击某个对象时提醒它“hello”。一旦工作正常,让它记录在控制台上单击的实际元素。你真的应该张贴所有不同的东西,你已经尝试到目前为止,使其工作。。。
wireThumbnails: function() {
        //trigger image change event on thumbnail click
        $j('.product-image-thumbs .thumb-link').click(function(e) {
            e.preventDefault();
            var jlink = $j(this);
            var target = $j('#image-' + jlink.data('image-index'));

            ProductMediaManager.swapImage(target);
        });
    }