商城前台项目:商品三级分类功能实现

2023-11-05

项目效果:

 实现代码:

components/Category/index.vue

<div @mouseleave="leaveHandler">
  <h2 class="all" @mouseenter="enterHandler" >
   全部商品分类
  </h2>
  <!--商品分类结构-->
  <transition name="sort">
   <div class="sort" v-show="show">
    <div class="all-sort-list2" @click="goSearch">
     <!--item:代表一级分类  dl:代表二级   em:代表三级-->
     <div class="item" v-for="(c1, index) in categoryArr" :key="c1.categoryId">
      <h3 :class="{ active: index == currentIndex }" @mouseenter="changeIndex(index)">
       <a :data-categoryName="c1.categoryName" :data-category1Id="c1.categoryId">
        {{ c1.categoryName }}
       </a>
      </h3>
      <div class="item-list clearfix" :style="{ display: index == currentIndex ? 'block' : 'none' }">
       <div class="subitem">
        <dl class="fore" v-for="(c2, index) in c1.categoryChild" :key="c2.categoryId">
         <dt>
          <a :data-categoryName="c2.categoryName" :data-category2Id="c2.categoryId">
           {{ c2.categoryName }}
          </a>
         </dt>
         <dd>
          <em v-for="(c3, index) in c2.categoryChild" :key="c3.categoryId">
           <a :data-categoryName="c3.categoryName" :data-category3Id="c3.categoryId">
            {{ c3.categoryName }}
           </a>
          </em>
        </dd>
       </dl>
      </div>
     </div>
    </div>
   </div>
  </div>
 </transition>
</div>
methods: {
    goSearch(event) {
      //第一个:无法确定是否点击是a标签?
      //第二个:无法获取路由跳转携带的参数?
      //第三个:无法区分到底一级、二级、三级分类?
      //dataset属性:DOM标签属性,获取标签自定义属性与属性值
      let { categoryname, category1id, category2id, category3id } =
        event.target.dataset; //切记大小写
      //如果执行if条件语句点击的一定是a标签
      if (categoryname) {
        //路由跳转携带的参数
        let option = {
          name: "Search",
          query: { categoryName: categoryname },
          params: this.$route.params,
        };
        if (category1id) {
          //整理参数:一级分类的id
          option.query.category1Id = category1id;
        } else if (category2id) {
          option.query.category2Id = category2id;
        } else {
          option.query.category3Id = category3id;
        }
        console.log(option);
        //路由跳转
        this.$router.push(option);
      }
    },
  },

实现思路:

1、事件委派,将事件委派给最近的父级

2、给a标签添加自定义属性,通过dataset属性(属于是DOM标签属性)获取标签自定义属性与属性值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

商城前台项目:商品三级分类功能实现 的相关文章

  • goJS 下拉菜单删除项目

    我有简单的 python Flask goJS 图形应用程序 如下所示 节点和链接文本的源是从应用程序的后端加载的 我将它们设置为model modelData像这样的部分 var graphDataString JSON parse di
  • getScript 本地加载而不是全局加载?

    根据我的阅读 JQuery 的 getScript 函数使用名为 global eval 的函数在全局上下文中加载脚本文件 是否有特定的设置或方法可以更改此设置 以便它将改为在我调用它的函数中加载 如果我执行以下代码名称 则返回未定义 因为
  • 输入类型货币格式,带逗号和小数位 2

    我只是想问如何制作输入类型文本的货币格式的JavaScript 当您输入数字时 数字是否可能带有逗号 另外 如何使数字固定为 2 个小数 如果我输入 3 位小数 最后一个数字将四舍五入 因此可以是 2 位小数 我有一个仅接受数字的文本框 我
  • 如何在 javascript/jquery 中进行非阻塞睡眠?

    如何在 javascript jquery 中进行非阻塞睡眠 冒着从评论者那里窃取答案的风险 请使用设置超时 https developer mozilla org en US docs Web API WindowTimers setTi
  • 逻辑 && 和 || JavaScript 中的运算符

    我想进一步澄清一些事情 考虑一下 var a 42 var b abc var c null a b 42 a b abc c b abc c b null 我知道对于 运算符 如果第一个操作数的测试为真 则 表达式的结果是第一个操作数 a
  • 即使 WebPack 构建工作正常,VS Code 显示未找到模块

    我的 VS Code 说它找不到导入 即使我的 WebPack 构建仍然有效 这是进口 import as tf from tensorflow tfjs 以及来自 VS Code 的消息 找不到模块 tensorflow tfjs 您的意
  • 降低 Nodejs 服务器上的 CPU 利用率

    我正在研究降低 CPU 利用率的有趣方法 在 NodeJS 服务器上 在我的研究过程中 我发现了以下文章 http engineering linkedin com nodejs blazing fast nodejs 10 perform
  • 在 Javascript 中按日期对数组进行排序

    我在用着sort 按日期排序数组 elements data sort function a b return a date getTime b date getTime 问题是某些元素缺少日期 或日期无效 这导致了这个错误 无法读取属性
  • 如何配置 StrongLoop LoopBack MongoDB 数据源以部署到 Heroku

    我正在使用 LoopBack 版本 1 6 并使用以下数据源配置运行本地 mongoDB 服务器进行开发 mongodb defaultForType mongodb connector loopback connector mongodb
  • JavaScript 附加和前置与 jQuery 附加和前置

    QA Style 我最近读了一篇文章 里面说JavaScript已经实现了append and prepend受 jQuery 启发的方法 这对我来说是一个新知识 因为据我所知 要附加一个元素 我必须使用element appendChil
  • 有没有办法防止 neDB 集合数组中的条目重复?

    var addNewUser function id chatId db update id id push users chatId function err numAffected code after the record is up
  • 是否存在必须在 HTML/JavaScript 中使用早期绑定/内联事件属性的情况

    在我对以下问题的回答中 事件绑定是什么意思 https stackoverflow com q 6329996 144491 我顺便说一下 使用 inline JavaScript Early Binding 来绑定 JavaScript
  • JS 中的 .Jar 文件

    有谁知道如何在 JS 中访问 jar 文件 我已经用 Java 创建了类并作为 jar 文件导入 我想从 JS 文件访问该类 大家好 我感谢你们所有人 我尝试在 Firefox XUL 中使用 JS 列出文件夹中的文件 但我做不到 然后我决
  • Mocha 测试对原生 ES6 模块的“esm”支持

    有一个很棒的帖子 使用 Mocha 和 esm 测试原生 ES 模块 https web archive org web 20220318155753 https alxgbsn co uk 2019 02 22 testing nativ
  • 如何在没有模块的情况下在 vue 中使用 TypeScript

    In package json I have devDependencies vue 2 5 16 这给了我index d ts vue d ts and so on https github com vuejs vue tree v2 5
  • Javascript onclick隐藏div

    我想使用 javascript 隐藏这个警告 div 我的 javascript 正确吗 我想在单击关闭图标时隐藏 关闭 div images close icon gif div strong Warning strong These a
  • 解析器阻塞与渲染阻塞

    我一直在阅读有关优化网络性能的 Google 开发人员文档 我对那里使用的术语有点困惑 CSS 和 JavaScript 文件都会阻止 DOM 构建 但是 CSS 被称为渲染阻塞 而 JavaScript 被称为解析器阻塞 解析器阻塞 和
  • 添加 sigma.js 导航按钮

    我是 javascript 和 sigma js 的新手 我试图让导航按钮在画布中向上 向下 向左 向右滚动 就像发现的那样here http jcml fr jacomyal osdc2012 demo 到目前为止 我有一个简单的例子 我
  • JavaScript IDE/编译器

    现在 我希望你们中的一些人能够理解我的要求 我是编程新手 我在 Codecademy com 上了解了 JavaScript 我使用 labs codecademy com 来编写 JavaScript 但它有限制 对于编程新手来说 我可以
  • RegisterClientScriptCode 在部分回发后不起作用

    以下代码行位于 SharePoint 网站的用户控件中 ScriptManager RegisterClientScriptBlock this this GetType jquery144 false ScriptManager Regi

随机推荐

  • 媒介盒子「AI一键生成文章」功能上线,连新闻稿都不用自己写了~

    媒介盒子 AI一键生成文章 功能上线 发软文再也不用担心没有软文稿了 媒介盒子 AI一键生成文章 功能专为有软文发稿需求 但没有软文稿件的用户量身定做 媒介盒子作为国内首屈一指的专业软文发稿平台 在以往合作的客户中 经常有人反馈 我们公司没
  • python--argparse之action用法

    argparse之action用法 action关键字默认状态有两种 store true和store false 若输入命令时 不指定其参数 则store true显示为False store false显示为True 下面举个例子来直观
  • C++加密库 Crypto++

    lcrypto algorithm type name authenticated encryption schemes GCM CCM EAX high speed stream ciphers Panama Sosemanuk Sals
  • python从Excel表格中读取数据

    使用python从Excel表格中读取数据 需要安装xlrd库 pip3 install xlrd 或者 pip install xlrd 之后就可以在 py文件中导入该模块了 import xlrd
  • 用ppt图表分析人口数据

    2022年7月11日是世界人口日 联合国经济和社会事务部 经社部 在这一天发布了 世界人口展望2022 联合国每两年或三年发布一次 世界人口展望 的版本 上一个版本是2019版 世界人口展望2022 预测2022年11月15日 世界人口将达
  • 爆料称字节跳动实习生删库

    本文转载自IT之家 6 月 24 日消息 脉脉用户 程序员 白胜 在社交媒体称 字节跳动一名实习生删除了公司所有 lite 模型 在脉脉上引发关注 这名用户随后在回复中称 实习生直接 delete 父目录 还加了 skip trash li
  • 算法题记录【华为od】查找单入口空闲区域

    题目描述 思路分析 来源 华为OD真题学习 查找单入口空闲区域 100 大为童鞋的博客 CSDN博客 总体思路是遍历数组 查找符合要求的点即可 注意点一 单入口区域只能存在一个入口 用count判断是否只存在一个入口 注意点二 目标点上下左
  • 【云原生学习】PromQL学习以及Node Exporter常用查询语句

    文章目录 PromQL学习以及Node Exporter常用查询语句 一 PromQL学习 1 1 表达式数据类型 1 1 1 Instant vector selectors 1 1 2 区间vector selectors 1 2 符合
  • pythonpandas数据输出_[Python]pandas用法-数据系列,pythonpandas,使用,Series

    pandas数据Series 目录 默认数字索引 import pandas as pd import numpy as np from pandas import Series from pandas import DataFrame o
  • 软件工程知识-软件测试

    1 软件测试是发现软件错误 缺陷 的主要手段 从是否关系软件内部结构和具体实现的角度对软件测试进行分类 2 静态测试 以检查为主 桌前检查 代码走查 代码审查 动态测试 实际运行程序 分白盒测试 黑盒测试 灰盒测试 白盒测试 结构测试 用于
  • AI加速(八)

    大家好啊 我是董董灿 前文回顾 AI加速 一 GPU为什么这么牛 AI加速 二 计算机存储和计算的分离 AI加速 三 每条指令都是流水线的工人 AI加速 四 衣柜般的分层存储设计 AI加速 五 一个例子看懂流水 从指令到算法 AI加速 六
  • 18769 不完整的排序

    时间限制 1000MS 代码长度限制 10KB 提交次数 0 通过次数 0 题型 编程题 语言 不限定 Description 一个数组只包含正负整数 请使用一个O n 级别的算法对其进行排序 只需将负数全部放前面 正数全部放后面即可 无需
  • 机器学习中特征的处理及选择

    基础概念 特征工程是通过对原始数据的处理和加工 将原始数据属性通过处理转换为数据特征的过程 属性是数据本身具有的维度 特征是数据中所呈现出来的某一种重要的特性 通常是通过属性的计算 组合或转换得到的 比如主成分分析就是将大量的数据属性转换为
  • 做接口测试如何上次文件

    在日常工作中 经常有上传文件功能的测试场景 因此 本文介绍两种主流编写上传文件接口测试脚本的方法 首先 要知道文件上传的一般原理 客户端根据文件路径读取文件内容 将文件内容转换成二进制文件流的格式传输给服务端 而服务端接受客户端传过来的二进
  • 构建ubuntu根文件系统

    构建ubuntu根文件系统 象棋小子 1048272975 Ubuntu是一个广泛应用于个人电脑 云计算 以及智能物联网设备的开源操作系统 针对智能物联网 Ubuntu提供了一套更加安全 轻量级 专为智能物联网订制的开源操作系统Ubuntu
  • 前后端交互的api

    api是application interface应用接口 通过原生ajax或者jQuery或者axios 发送请求 连接后端的核心纽带 可以说也是一种革命 因为之前都是混编 html代码与后端语言杂合在一起 原码即是运行的代码 不加以修饰
  • 类加载器 & 打破双亲委派机制(个人总结)

    声明 1 本文为我的个人复习总结 并非那种从零基础开始普及知识 内容详细全面 言辞官方的文章 2 由于是个人总结 所以用最精简的话语来写文章 3 若有错误不当之处 请指出 类加载器 启动类加载器 加载JAVA HOME lib下的核心类 扩
  • HJ68 成绩排序【python3】

    题目描述 给定一些同学的信息 名字 成绩 序列 请你将他们的信息按照成绩从高到低或从低到高的排列 相同成绩 都按先录入排列在前的规则处理 例示 jack 70 peter 96 Tom 70 smith 67 从高到低 成绩 peter 9
  • Linux下,qt5中使用Qt Multimedia编译时遇到报错

    遇到defaultServiceProvider requestService no service found for org qt project qt mediaplayer 错误 解决方法 在Linux中 sudo apt get
  • 商城前台项目:商品三级分类功能实现

    项目效果 实现代码 components Category index vue div h2 class all 全部商品分类 h2 div