JS原生隐士标签扩展
最近项目开发中,开发了不少的接口,有一个接口是这样子的。先从A公司拿到数据后,存放到我们公司数据库里,然后需要将数据展示给客户,下面这个界面,后台要实时刷新,后台写了个定时器,2S刷一次从后台拼接好Html传给前台,哎···页面有点丑,大佬莫见怪。公司里用的框架EXTJS,东西都是封装好的,开发基本上只要写写JS脚本就可以,所以没有招美工,用的Bootstrap 随便捣鼓下,讲究着给客户展示吧~~
主界面
需求这样的:展示的内容是实时刷新的,客户随机点击一个Div弹出一个模态窗体,然后把详细信息展示给客户,那么问题来了,怎么多个Div如何绑定点击事件???然后如何区分开来???
模态窗体
晚上学习视频的时候,可以用原生JS写一个隐士的按钮点击扩展方式,用到的知识:eval()、JS属性选择器、获取标签中的值
第一步:为标签添加扩展属性
<input type="button" btn-click="afterClick" id="15" value="点一下" /> <!--btn-click="afterClick" 添加扩展属性-->
<input type="button" btn-click="afterClick" id="16" value="点一下" /> <!--btn-click="afterClick" 添加扩展属性-->
<input type="button" btn-click="afterClick" id="17" value="点一下" /> <!--btn-click="afterClick" 添加扩展属性-->
第二步:编写JS隐士扩展方法
<script type="text/javascript">
$("input[btn-click]").click(function () {
var strFunc = $(this).attr("btn-click"); //获取当前点击标签、扩展属性的函数名
var strId = $(this).attr("id"); //获取点击标签的Id值
eval(strFunc + "("+strId+")"); //调用eval()方法,执行该方法,并传入一个参数:Id
});
function afterClick(id) {
alert(id); //弹出传进来的Id,既然可以获取当前点击的Id值,这里在做一些异步请求,问题自然而解,啦啦啦~~~
debugger;
}
</script>
效果:
官网解释:eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
返回值
通过计算 string 得到的值(如果有的话)。
说明
该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回。因此请不要为 eval() 函数传递 String 对象来作为参数。
如果试图覆盖 eval 属性或把 eval() 方法赋予另一个属性,并通过该属性调用它,则 ECMAScript 实现允许抛出一个 EvalError 异常。
只不过我们借助eval()方法,执行的函数罢了。好了,我们现在已经可以通过这个隐士扩展方法,拿到Id,后续在调用异步请求,巴拉巴拉.....这个问题就解决啦~~/开心
JS原生隐士标签扩展的更多相关文章
- JavaScript原生对象及扩展
来源于 https://segmentfault.com/a/1190000002634958 内置对象与原生对象 内置(Build-in)对象与原生(Naitve)对象的区别在于:前者总是在引擎初始 ...
- 使用原生js创建自定义标签
使用原生js创建自定义标签 效果图 代码 <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- 图片轮播(左右切换)--JS原生和jQuery实现
图片轮播(左右切换)--js原生和jquery实现 左右切换的做法基本步骤跟 上一篇文章 淡入淡出 类似,只不过修改了一些特定的部分 (1)首先是页面的结构部分 对于我这种左右切换式 1.首先是个外 ...
- 图片轮播(淡入淡出)--JS原生和jQuery实现
图片轮播(淡入淡出)--js原生和jquery实现 图片轮播有很多种方式,这里采用其中的 淡入淡出形式 js原生和jQuery都可以实现,jquery因为封装了很多用法,所以用起来就简单许多,转换成j ...
- 手把手教你js原生瀑布流效果实现
手把手教你js原生瀑布流效果实现 什么是瀑布流效果 首先,让我们先看一段动画: 在动画中,我们不难发现,这个动画有以下特点: 1.所有的图片的宽度都是一样的 2.所有的图片的高度是不一样的 3.图片一 ...
- 认识JQuery,JQuery的优势、语法、多库冲突、JS原生对象和JQuery对象之间相互转换和DOM操作,常用的方法
(一)认识JQuery JQuery是一个JavaScript库,它通过封装原生的JavaScript函数得到一套定义好的方法 JQuery的主旨:以更少的代码,实现更多的功能 (二)JQue ...
- 15、js 原生基础总结
Day1 一.什么是JS? ==基于对象==和==事件驱动==的客户端脚本语言 二.哪一年?哪个公司?谁?第一个名字是什么? 1995,NetScape(网景公司),布兰登(Brendan Eic ...
- JS原生实现视频弹幕Demo(仿)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...
- js原生轮播
js原生轮播 今天用js做了轮播图,做的不怎么好,希望大家能够看懂. 效果: 1.鼠标放在轮播图上自动停止 2.鼠标离开轮播图自动播放 3.鼠标点击轮播图上的小圆点跳转到相应的图上. 代码: < ...
随机推荐
- Nodejs操作MySQL - 增删改查
先安装npm模块项目 npm init 安装mysql npm install mysql --save Nodejs 连接msyql // 导入mysql const mysql = require ...
- cookie 和 session 区别
二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪录下来.当下次你再光临同一个网站,WEB 服务器会先看看有 ...
- 高并发 Nginx+Lua OpenResty系列(4)——Lua 模块开发
在实际开发中,不可能把所有代码写到一个大而全的lua文件中,需要进行分模块开发:而且模块化是高性能Lua应用的关键.使用require第一次导入模块后,所有Nginx 进程全局共享模块的数据和代码,每 ...
- 【设计模式】行为型05责任链模式(Chain of responsibility Pattern)
学习地址:http://www.runoob.com/design-pattern/chain-of-responsibility-pattern.html demo采用了DEBUG级别举例子,理解起 ...
- 【工具】java发送GET、POST请求
前项目使用这种HTTP的方式进行数据交互,目前已更换数据交互方式,但是作为接口提供调用来说还是比较简洁高效的: 总体流程就是: 1.发送HTTP请求 2.获取返回的JSON对象 3.JSON转换 pa ...
- Java学习笔记——MySQL创建表结构
一.创建/删除数据库. create database t14; drop database t14; use t14; 二.创建若干表用于测试 这里预留了几个坑,下面要填坑的.. /*创建学生表*/ ...
- Python将pyc转为py
安装pip install uncompyle2, 使用uncompyle2 xxx.pyc > xxx.py
- mac 添加new file.md
1. 打开mac自带的"Automator",文稿类型选择应用程序:   2. 选择:实用工具 -> 运行 AppleScript  3. 黏贴如下代码到上图的右侧,c ...
- 并发编程-concurrent指南-阻塞队列BlockingQueue
阻塞队列BlockingQueue,java.util.concurrent下的BlockingQueue接口表示一个线程放入和提取实例的队列. 适用场景: BlockingQueue通常用于一个线程 ...
- Bean property 'transactionManagerBeanName' is not writable or has an invalid set
[2017-02-07 11:38:48,458]-[localhost-startStop-1]-[org.springframework.beans.factory.support.Default ...