拓展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 ...
随机推荐
- 怎么查看SAS到期时间
通过以下命令,可以查看SAS到期时间: proc setinit; run;
- vue属性
1. 图片地址: data:{ url:"https://www.baidu.com/img/bd_logo1.png"}, <img v-bind:src="ur ...
- Ubuntu 14.4 安装OpenVZ
添加源 vim /etc/apt/sources.list.d/openvz.list 写入下面内容保存 如果需要,可以视情况改动注释..(如果看不懂,请不要在意这行字) deb http://dow ...
- fastclick.js解决移动端(ipad)点击事件反应慢问题
参考http://blog.csdn.net/xjun0812/article/details/64919063 http://www.jianshu.com/p/16d3e4f9b2a9 问题的发现 ...
- 2-Zookeeper、HA安装
1.Zookeeper安装 1.解压 zookeeper 到安装目录中/opt/app/zookeeper 中. 2.在安装目录下创建data和logs两个目录用于存储数据和日志: cd /opt/a ...
- Java 工程名上有个红色叹号
biuldpath把带×号的jar包remove保存,重新添加jar包
- 人工智能时代,是时候学点Python了!
“是时候学点Python了”.作为一名不怎么安分的程序员,你或许觉得,产生这样的想法并不奇怪,但学习Python却是出于自己对工作现状以及如何应对未来挑战所作出的思考.读过我以前博客的朋友,可能都知道 ...
- css动画animation-keyframes
随着css3的流行,现在很多可以使用css3实现的动画效果,基本上就选择css3实现,尤其是在移动端的(移动端对css3的支持度相对比较高,PC端有很多IE8及以下的浏览器拖着后腿呢). 最近做了一个 ...
- Spring和SpringBoot比较,解惑区别
1.概述: 对于Spring和SpringBoot到底有什么区别,我听到了很多答案,刚开始迈入学习SpringBoot的我当时也是一头雾水,随着经验的积累.我慢慢理解了这两个框架到底有什么区别,我相信 ...
- java 类拷贝
直接上代码:public class Demo { public static void main(String[] args) throws CloneNotSupportedException { ...