拓展jquery js动态添加html代码 初始化数据
1 /**
* 新增数据筛选
*/
(function () {
$.filterEvent = function(options){
var _this = this;
var defaults = {
elId: "",
tableId:"",
data:{}
};
var options = $.extend(defaults, options);
var $container = $(options.elId); var html = `<div class="col-xs-12" style="position: relative;">
<div class="pull-right" style="width: 10%;padding-right: 1.2rem;position: absolute;right: 0;top: 0;margin: auto;">
<a id="deleted#key#" class="btn-link pull-right">
<i class="fa fa-times-circle"></i>
</a>
</div>
<div class="input-group m-b">
<span class="input-group-addon">分组标题</span>
<input class="form-control" id="filterName#key#">
</div>
<div class="input-group m-b">
<span class="input-group-addon">第一级字段</span>
<input class="form-control" id="firstFilterField#key#" placeholder="选择字段" readonly="readonly">
<span class="input-group-addon">
<a onclick="select_parent_field('firstFilterField#key#');">
<i class="fa fa-chain"></i>
选择
</a>
</span>
</div>
<div class="input-group m-b">
<span class="input-group-addon">第二级字段</span>
<input class="form-control" id="secondFilterField#key#" placeholder="选择字段" readonly="readonly">
<span class="input-group-addon">
<a onclick="select_parent_field('secondFilterField#key#');">
<i class="fa fa-chain"></i>
选择
</a>
</span>
</div>
<div class="input-group m-b">
<span class="input-group-addon">第三级字段</span>
<input class="form-control" id="thirdFilterField#key#" placeholder="选择字段" readonly="readonly">
<span class="input-group-addon">
<a onclick="select_parent_field('thirdFilterField#key#');">
<i class="fa fa-chain"></i>
选择
</a>
</span>
</div>
</div>`;
/**
* 添加节点
*/
this.newFilterEvent = function(rowJson){
var key = this.newGuid();
var isAdd = false;
if(rowJson == undefined || rowJson == null){
rowJson = {
'filterName' : '',
'firstFilterField' : '',
'secondFilterField' : '',
'thirdFilterField' : ''
};
isAdd = true;
}
options.data[key] = rowJson; var _this = this;
$html = $(html.replace(/#key#/g, key));
$container.append($html); //绑定事件
$html.find("#filterName"+key).change(function(){
var val = $(this).val();
rowJson.filterName = val;
options.data[key] = rowJson;
});
$html.find("#firstFilterField"+key).change(function(){
var val = $(this).val();
rowJson.firstFilterField = val;
options.data[key] = rowJson;
});
$html.find("#secondFilterField"+key).change(function(){
var val = $(this).val();
rowJson.secondFilterField = val;
options.data[key] = rowJson;
});
$html.find("#thirdFilterField"+key).change(function(){
var val = $(this).val();
rowJson.thirdFilterField = val;
options.data[key] = rowJson;
});
$html.find("#deleted"+key).click(function(){
delete options.data[key];
$(this).parent().parent().remove();
}); //初始化数据
if(rowJson.filterName != ''){
$html.find("#filterName"+key).val(rowJson.filterName);
}
if(rowJson.firstFilterField != ''){
$html.find("#firstFilterField"+key).val(rowJson.firstFilterField);
}
if(rowJson.secondFilterField != ''){
$html.find("#secondFilterField"+key).val(rowJson.secondFilterField);
}
if(rowJson.thirdFilterField != ''){
$html.find("#thirdFilterField"+key).val(rowJson.thirdFilterField);
}
}; this.getData = function(){
var eventData = [];
for ( var k in options.data) {
var row = options.data[k];
eventData.push(row);
}
return eventData;
}; this.initData = function(data){
if(data == undefined || data == null){
return;
}
for (var k in data) {
var row = data[k];
this.newFilterEvent(row);
}
}; this.newGuid = function () {
var guid = "";
for (var i = 1; i <= 32; i++) {
var n = Math.floor(Math.random() * 16.0).toString(16);
guid += n;
// if ((i == 8) || (i == 12) || (i == 16) || (i == 20)) guid += "-";
}
return guid;
}; };
})(jQuery);



jquery动态的给div下增加Dom节点:
如图所示:
==》点击新增配置:
在elId下增加如图所示的div,初始化。右边的❌可以删除当前新增的div。
拓展jquery js动态添加html代码 初始化数据的更多相关文章
- jquery实现动态添加html代码
先看下思导图,整体了解下,然后我们再来学习. 现在我们来看一下几段代码,然后根据这几段代码我们来学习一下如何正确的学习动态添加html. 一.html()方法 html函数的作用原理首先是移除目标元素 ...
- js 动态添加input代码
<script type="text/javascript" language="javascript"> function newNode(thi ...
- mui H5 js动态添加不同类型的数据
html页面需要添加的页面的数据格式 <ul class="mui-table-view" id="OA_task_1"> <li class ...
- jquery 动态添加的代码不能触发绑定事件
今天发现jQuery对动态添加的元素不触发事件,比如blur.click事件等 参考文章证明了我的结论,并给出了原因及解决方案 原因:程序找不到动态添加的节点. 解决方案:在绑定父元素后的子元素 $( ...
- [转]jquery append 动态添加的元素事件on 不起作用的解决方案
用jquery添加新元素很容易,面对jquery append 动态添加的元素事件on 不起作用我们该如何解决呢?on方法中要先找到原选择器(如例.info),再找到动态添加的选择器(如列.delet ...
- jQuery对 动态添加 的元素 绑定事件(on()的用法)
从jQuery 版本 1.7 起,on() 方法是向被选元素添加事件处理程序的(官方推荐)首选方法. 当浏览器下载完一个页面的时候就开始渲染(翻译)HTML标签,然后执行css.js代码,在执行js代 ...
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
博客分类: jquery-easyui jQueryAjax框架HTML 现象: AJAX返回的html无法做到自动渲染为EasyUI的样式.比如:class="easyui-layout ...
- jquery append 动态添加的元素事件on 不起作用的解决方案
用jquery添加新元素很容易,面对jquery append 动态添加的元素事件on 不起作用我们该如何解决呢?on方法中要先找到原选择器(如例.info),再找到动态添加的选择器(如列.delet ...
- jquery append 动态添加的元素绑定事件on
用jquery添加新元素很容易,面对jquery append 动态添加的元素事件on 不起作用我们该如何解决呢?on方法中要先找到原选择器(如例.info),再找到动态添加的选择器(如列.delet ...
随机推荐
- lunix salt 用法
红蜘蛛软件 c/s client : 学生端是客户端 ,装了红蜘蛛客户端-学生端 server端: 教师机 ,装了红蜘蛛软件-教师端 教师机,只能管理, 教师机和学生机,相互通信,相互知道的情 ...
- RBAC表
--权限管理1 CREATE TABLE SystemLog--日志表 ( Id ,) PRIMARY KEY,--主键id UserName ) NOT NULL,--用户名称,创建日志的用户名称 ...
- 可变,不可变与 id 的关系
变量名不能使用关键字: 查看关键字 import keyword keyword.kwlist 可变与不可变: 列表添加元素后,id并不会改变.说明列表可变 元祖添加元素后,id会改变,就不是同一对 ...
- 在eclipse中安装go编辑器阅读fabric代码
参考资料 由于fabric采用go语言编写,故需要安装go环境. 安装要求: Java VM version 8 or later. Eclipse 4.6 (Neon) or later. 1. J ...
- CPU UsageTimes Profile (cpu=times)
HPROF工具能搜集CPU使用信息通过注入代码到每个方法进入点和退出点.因此能够统计方法真实调用次数和花费的时间. 它使用BCI(Byte Code Injection),所以比cpu=samples ...
- REST api文档管理工具
问题: 不同软件/程序在网络中互相传递信息不统一. 交互不便. REST API 作用: RESTful API就是一套协议,用来规范多种形式的前端和同一个后台的交互方式. 原理: 组成/流程/规范: ...
- 浮动ip cz
- smbpasswd 和 pdbedit 的区别
以前我们在windows上共享文件的话,只需右击要共享的文件夹然后选择共享相关的选项设置即可.然而如何实现windows和linux的文件共享呢?这就涉及到了samba服务了,这个软件配置起来也不难, ...
- spark核心原理
spark运行结构图如下: spark基本概念 应用程序(application):用户编写的spark应用程序,包含驱动程序(Driver)和分布在集群中多个节点上运行的Executor代码,在执行 ...
- 在集群上运行Spark
Spark 可以在各种各样的集群管理器(Hadoop YARN.Apache Mesos,还有Spark 自带的独立集群管理器)上运行,所以Spark 应用既能够适应专用集群,又能用于共享的云计算环境 ...