应用场景:商品筛选

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Document</title><style type="text/css">* {margin: 0;padding: 0;list-style: none;text-decoration: none;}.choose {width: 500px;height: auto;margin: auto;}.choose nav {height: 50px;background-color: red;}.choose nav span {margin: 0 5px;}.choose .show {color: red;}.choose ul li {border: 1px solid black;}.choose ul li a {box-sizing: border-box;display: inline-block;width: 40px;border-left: 1px solid black;margin: 5px;padding-left: 5px;}</style>
</head><body><div class="choose"><nav></nav><ul><li><strong>手机:</strong><a href="javascript:;">小米</a><a href="javascript:;">华为</a><a href="javascript:;">apple</a><a href="javascript:;">OPPO</a><a href="javascript:;">vivo</a></li><li><strong>价格:</strong><a href="javascript:;">3200</a><a href="javascript:;">2600</a><a href="javascript:;">899</a><a href="javascript:;">2799</a><a href="javascript:;">2299</a></li><li><strong>屏幕:</strong><a href="javascript:;">399</a><a href="javascript:;">600</a><a href="javascript:;">800</a><a href="javascript:;">1200</a></li></ul></div>
</body></html>
    <script type="text/javascript">var li = document.querySelectorAll('li');var stack = []; //存放三个类别的optionfor (var i = 0; i < li.length; i++) {// 获取每个li中的option进行处理var options = li[i].querySelectorAll("a");for (var j = 0; j < options.length; j++) {// 当选项被点击时,传入点击的类别是第几个li的// options[j].onclick = Aclick.bind(options[j], [i]); //1. 将点击事件分离出去options[j].onclick = Bclick(i); //2. 将点击事件分离出去}}</script>

当写到这里的时候想要把这个事件函数分离出去,但是有参数。于是问题出现

如何将一个带参数的事件函数分离出去???

于是乎:就有了以下两种方法

  1. 使用bind改变this指向后返回一个不执行的函数
           function Aclick(index) {// 删掉navvar choose = document.querySelector('.choose');var nav = document.querySelector(".choose nav");choose.removeChild(nav);// 使用stack重新添加stack[index] = this.innerHTML;var nav = document.createElement("nav");for (k = 0; k < stack.length; k++) {if (stack[k] != "" && stack[k] != undefined) { //略过stack中的空项,重新向nav中添加spanvar span = document.createElement("span");var a = document.createElement("a");a.innerHTML = "X";a.href = "javascript:void(0);";span.innerHTML = stack[k];a.onclick = function() {stack[index] = "";nav.removeChild(this.parentNode);}span.appendChild(a);nav.appendChild(span);}}choose.insertBefore(nav, choose.children[0]);}
  1. 在注册函数外面套一层函数将注册函数返回
        function Bclick(index) {return function() {// 删掉navvar choose = document.querySelector('.choose');var nav = document.querySelector(".choose nav");choose.removeChild(nav);// 使用stack重新添加stack[index] = this.innerHTML;var nav = document.createElement("nav");for (k = 0; k < stack.length; k++) {if (stack[k] != "" && stack[k] != undefined) { //略过stack中的空项,重新向nav中添加spanvar span = document.createElement("span");var a = document.createElement("a");a.innerHTML = "X";a.href = "javascript:void(0);";span.innerHTML = stack[k];a.onclick = function() {stack[index] = "";nav.removeChild(this.parentNode);}span.appendChild(a);nav.appendChild(span);}}choose.insertBefore(nav, choose.children[0]);}}

js实现商品筛选功能相关推荐

  1. 商品筛选html,js实现简单商品筛选功能

    本文实例为大家分享了js实现商品筛选功能的具体代码,供大家参考,具体内容如下 应用场景:商品筛选 Document * { margin: 0; padding: 0; list-style: non ...

  2. 【PHP开源产品】Ecshop的商品筛选功能实现分析之一

    一.首先,说明一下为什么要对category.php文件进行分析. 原因如下: ①个人对商城类商品筛选功能的实现比较好奇: ②对商城中关于商品的数据表设计比较感兴趣.(该功能涉及到与数据库的交互,而且 ...

  3. Ecshop的商品筛选功能实现分析之一(主要对category.php进行分析)

    一.首先,说明一下为什么要对category.php文件进行分析. (1)原因如下: ①个人对商城类商品筛选功能的实现比较好奇: ②对商城中关于商品的数据表设计比较感兴趣.(该功能涉及到与数据库的交互 ...

  4. 【PHP开源产品】Ecshop的商品筛选功能实现分析之一(主要对category.php进行分析)

    [PHP开源产品]Ecshop的商品筛选功能实现分析之一(主要对category.php进行分析) 一.首先,说明一下为什么要对category.php文件进行分析. (1)原因如下: ①个人对商城类 ...

  5. TP5简单实现类似京东淘宝多级商品筛选功能。

    前几天做项目时,碰到个需求,商品多级分类筛选功能.之前从没做过,查了不少资料,总算实现了.虽然实现的不够优雅,但起码能有效果,心里还是很高兴的.菜鸟有一颗成为大神的心.在这里分享给各位童鞋,欢迎大佬指 ...

  6. 仿手机端京东商城html源码_web前端入门到实战:制作仿京东商城-商品列表商品筛选功能...

    这次实现一个仿京东商城-商品列表商品筛选的功能 一.html代码 已选条件: 品牌: 全部 惠普(hp) 联想(Lenovo) 联想(ThinkPad) 宏基(acer) 华硕 戴尔 三星 索尼 东芝 ...

  7. html表格筛选,js实现表格筛选功能

    本应用就两个主要实现: 1.表格的id 和 class之间的命名关系 请看图: 将组名和个人信息联表格联系起来,这样会很好的操作表格 HTML代码: 前台设计组张三男浙江宁波李四男浙江宁波胡歌男浙江宁 ...

  8. html怎么做商品列表,纯js实现商品列表功能

    商品列表 功能需求:根据数据创建商品列表 来看一下效果: html结构:模拟商品数据,根据数据实例化Main对象. goodsList import Main from './js/Main.js'; ...

  9. 基于JavaScript实现前端数据多条件筛选功能

    效果图: 实现方法:默认全部.点击每一项进行不同条件切换,根据后台数据传递参数,实现动态的商品筛选功能. 参考如下: 代码如下:源代码 下载: https://github.com/gaomengpi ...

最新文章

  1. 《预训练周刊》第6期:GAN人脸预训练模型、通过深度生成模型进行蛋白序列设计
  2. Quartz.Net 调度框架配置介绍
  3. 一个假设:如果两个量互为分类对象和分类载体则他们不可对易
  4. java parameters用法_(四)Parameters,简单参数就用这个
  5. csdn开发者报告中学习到的新知识
  6. 解答网友提问:如何构建动态表达式实现高级查询服务
  7. display inline-block 垂直居中
  8. 服务器系统bsd,BSD操作系统大盘点:其它BSD变体
  9. mysql三高讲解(三)3.2:如何确定用哪条索引
  10. python_day4作业
  11. 计算机系统软硬件结构图,计算机系统结构组成.ppt
  12. Eclipse下载、安装、配置教程
  13. 时尚唯美婚礼视频制作AE标题模板 Wedding Responsive Titles
  14. 你今天因为 YYYY-MM-dd 被提 BUG 了吗?
  15. 基于Python的决策树分类器与剪枝
  16. 06:判断是否为两位数
  17. 【IOS】IOS7 UI适配
  18. Symfony\Component\Debug\Exception\FatalErrorException: Allowed memory size of 2147483648 bytes
  19. android智能电视使用方法,安卓系统智能电视使用方法
  20. JVM异常不打印堆栈信息 [ -XX:-OmitStackTraceInFastThrow ]

热门文章

  1. PHP直播爬虫,B 站直播间数据爬虫
  2. B站服务器数据协议,B站直播间协议指南
  3. 【苹果相册推送】imessage群发锚固的本地推送
  4. 查看Centos端口命令
  5. html css文字用省略号显示
  6. 微信小程序订阅模板消息
  7. 微信小程序搜索功能实现
  8. photoshop样机素材使用
  9. django+xadmin在线教育平台慕学网(二)
  10. 年收入100万的家庭如何买保险最划算?