商品分类栏的隐藏部分内容显示不出来

来源:1-5 按需加载商品详情

键盘f11

2020-10-15 17:00:52

具体遇到的问题

图片描述

报错信息的截图

相关课程内容截图

尝试过的解决思路和结果

老师,您好,我现在遇到的问题就是隐藏部分内容的右侧部分显示不出来,这个隐藏部分显示是通过js来实现的,之前我也提过类似的问题,也同样的看了几次视频,按照老师的思路来写一样的代码格式

粘贴全部相关代码,切记添加代码注释(请勿截图)

			.on('dropdown-show',function(){
				dropdown.loadOnce($(this),dropdown.createCategoryDetails);
			})
			.dropdown({
				css3:false,
				js:false
			});
在这里输入代码
```	Dropdown.prototype.show=function(){
		var self=this;
		if(this.options.delay){
			this.timer=setTimeout(function(){
				_show();
			},this.options.delay);
		}else{
			_show();
		}
		function _show(){
			self.$elem.addClass(self.activeClass);
			self.$layer.showHide('show');
		}
	}
css3._show = function($elem,className){
		show($elem,function(){
			$elem.off(trasition.end) .one(trasition.end,function(){
				$elem.data('status','shown') .trigger('shown');
			});
			$elem .show();
			setTimeout(function(){
				$elem.removeClass(className);
			},20);

		})
	}
上述三段代码,按照老师给的提示,已经都添加进去了,但是还是不能显示出来,是因为什么原因呢?程序代码没有报错。
我看了视频中老师代码所需要处理的文件是index.js,只需要通过这一个文件就可以实现商品分类display的block和none之间的切换,为什么我把index.js对应的搬过去不可以呢?
还有一部分的代码是在dropdown.js和showhide.js里面,感觉找来找去找不明白,就代码没有报错
理论来说,因为代码中涉及到json数据的调用,那么如果没有在php环境打开,是会有报错的,我这边打开报错也没有,说明代码没有实现json数据的请求
(function ($) {
	//menu
	'use strict';
	//menu
	var dropdown={};
	$('.menu')
		.on('dropdown-show',function(e){
			dropdown.loadOnce($(this),dropdown.buildMenuItem);
		})
		.dropdown({
			css3:true,
			js:false
		});

	dropdown.buildMenuItem=function($elem,data){
		var html="";
		if(data.length === 0) return;
		for(var i=0;i<data.length;i++){
			html+='<li><a href="'+data[i].url+'"target="_blank" class="menu-item">'+data[i].name+'</a></li>'
		}
		$elem.find('.dropdown-layer').html(html);
	};	

	$('.dropdown') .on('dropdown-show',function(e){
		var $this=$(this),
			dataLoad=$this.data('load');
	})
	dropdown.loadOnce = function($elem,success){
		var dataLoad=$elem.data('load');
		if(!dataLoad) return;
		if(!$elem.data('loaded')){
			$elem.data('loaded',true);
			$.getJSON(dataLoad).done(function(data){
				if(typeof success ==='function') success($elem,data);
			}) .fail(function(){
				$elem.data('loaded',false);
			});
		}
	};
	//focus-category

	$('#focus-category') .find('.dropdown')
			.on('dropdown-show',function(){
				dropdown.loadOnce($(this),dropdown.createCategoryDetails);
			})
			.dropdown({
				css3:false,
				js:false
			});
			
	dropdown.createCategoryDetails =function ($elem ,data){
		var html='';
		for( var i=0;i< data.length;i++){
			html +='<dl class="category-details cf"><dt class="category-details-title fl"><a href="###" target="_blank" class="category-details-title-link">' + data[i].title + '</a></dt><dd class="category-details-item fl">';
			for(var j=0;j<data[i].items.length;j++){
				//html + ='<a href="###" target="_blank" class="link">' + data[i].items[j] + '</a>';
				//html += '<a href="###" target="_blank" class="link">' + data[i].items[j] + '</a>';
				html+= '<a href="###" target="_blank" class="link">' +data[i].items[j]+ '</a>';
			}
			html +='</dd></dl>';
		}
		//setTimeout(function(){
			$elem.find('.dropdown-layer').html(html);
			//})
	};

})(jQuery);
上述为我的index.js文件的代码,我参考老师的代码复制粘贴了其中一部分内容,为什么还是不行呢?主要是dldt这个html格式添加不上去
写回答

1回答

好帮手慕慕子

2020-10-15

同学你好,老师在源码中测试同学粘贴的index.js文件中的代码,商品分类栏对应的隐藏部分可以正常显示出来。

不过同学粘贴的showHide.js文件中的代码,transition单词拼写错误,可以参考下图修改下

http://img.mukewang.com/climg/5f881bbb09b2863508620123.jpg

同学可以清除浏览器缓存再测试下,如果还有问题,可以将你写的代码全部粘贴过来(包括html、css、js),并将项目所在目录截图粘贴过来,代码就不要截图了,便于帮助同学测试代码,祝学习愉快~

0

0 学习 · 14456 问题

查看课程