点击按钮,生成一组一组combobox和slider时,避免控件Id相同,导致控件冲突的方法
如下效果图,点击一次添加按钮,动态生成一组combobox和slider。由于easyUI的下拉框和滑块使用相同的控件id,通过JS生成控件,如果两个id一样就会造成冲突,例如点击第一组的下拉框,第二组的下拉框也会跟着动。

如何避免这个冲突?
思路:可以在板块div外层加一个id,区分每组策略的combobox和slider。
步骤:
1、点击,用字符串拼接,插入html代码,这里的html代码有一个唯一Id
2、根据板块div的Id查找空间id,调用生成combobox和slider
具体实现代码如下:
/*时间下拉框data数据*/
var data1 = [
{
"id":0,
"text":"0:00",
"selected":true
},{
"id":1,
"text":"01:00"
},{
"id":2,
"text":"02:00"
},{
"id":3,
"text":"03:00"
},{
"id":4,
"text":"04:00"
},{
"id":5,
"text":"05:00"
}
];
/* ------ $(document).ready ----------- */
$(function () { /*第一个策略,生成时间下拉框、亮度音量滑块*/
sliderAndTime("#rule1"); var numadd = 1;
/*点击添加,添加策略设置*/
$(".add-rule").on("click",function(){
numadd++;
var ruleBoxId = "rule"+numadd;
var ruleBoxId2 = "#"+ruleBoxId; var ruleBox = '<div id="'+ruleBoxId+'" class="rule-box">'+
'<div class="rule-delete"></div>'+
'<div class="op_time_box"><div >每天开启时段:</div><div class="time_box"><div class="time_bt time-select1"></div></div><div>至</div><div class="time_box" ><div class="time_bt time-select2"></div></div></div>'+
'<div class="set_brightness_box">'+
'<div class="text_fl" >亮度设置:</div><div class="logo-1 fl"></div>'+
'<div class="text_fl width_130" ><div class="swip_box" ><div id="ssa_add"></div><div class="ssa"></div></div></div>'+
'<div class="num_box clearfix" ><div class="box1"><input id="liangdu" class="fl" type="text" value="" /><div class="num-deng fl">%</div></div></div>'+
'<div class="text_fl" >视频音量设置:</div><div class="logo-2 fl" ></div>'+
'<div class="text_fl width_130" ><div class="swip_box" ><div id="music_add"></div><div class="music" ></div></div></div>'+
'<div class="num_box clearfix"><div class="box1"><input id="yinliang" class="fl" type="text" value="" /><div class="num-yin fl">%</div></div></div>'+
'<div class="text_fl" >音频广告音量:</div><div class="logo-3 fl" ></div>'+
'<div class="text_ fl width_130" ><div class="swip_box" ><div id="audiomusic_add"></div><div class="audiomusic" ></div></div></div>'+
'<div class="num_box clearfix"><div class="box1"><input id="audioyinliang" class="fl" type="text" value="" /><div class="num-yin fl">%</div></div></div>'+
'</div>'+
'</div>'; $(".add-rule").before(ruleBox);
$(".rule-delete").show();
$(".rule-delete:first").hide();//第一个策略没有删除叉号 /*点击叉号,对应的策略设置消失*/
$(".rule-delete").on("click",function(){
$(this).parent().remove();
}); /*生成时间下拉框、亮度音量滑块*/
sliderAndTime(ruleBoxId2); }); /*点击叉号,对应的策略设置消失*/
$(".rule-delete").on("click",function(){
$(this).parent().remove();
}); }); /* 时间下拉框函数 */
function timefun(idClass){
$(idClass).combobox({
limitToList:true,
data:data1,
valueField:'id',
textField:'text',
editable:false,
panelHeight:"auto" });
} /*
* 亮度、视频音量、语音音量滑块函数
*s1 小滑块 class
*s2 上面进度滑块 id
*s3 显示滑动数值input框 id
* */
function sliderfun(s1,s2,s3){
var defaultValue = 80;//默认滑动位置
var sliderLength = 130;//滑块长度
$(s1).slider({
mode: 'h',
value : defaultValue,
onChange:function(newValue,oldValue){
$(s2).width(newValue*sliderLength/100);
$(s3).val(newValue);
}
}); $(s2).width(defaultValue*sliderLength/100);
$(s3).empty().val(defaultValue); $(s3).on('keyup',function(){
var val = $(this).val();
if(val==''||val==null||val==undefined||isNaN(val)){
val=0;
}
var num = parseInt(val);
if(num>100){
num=100;
}
$(this).empty().val(num); var width = num*sliderLength/100;
$(s1).slider('setValue', num);
$(s2).css('width', width);
});
} /*生成时间下拉框、亮度音量滑块*/
function sliderAndTime(id){
var j1 = id +" .time-select1";
var j2 = id +" .time-select2"; var a1 = id +" .ssa";
var a2 = id +" #ssa_add";
var a3 = id +" #liangdu"; var b1 = id +" .music";
var b2 = id +" #music_add";
var b3 = id +" #yinliang"; var c1 = id +" .audiomusic";
var c2 = id +" #audiomusic_add";
var c3 = id +" #audioyinliang"; /* 时间下拉框*/
timefun(j1);
timefun(j2); /*亮度滑块*/
sliderfun(a1,a2,a3); /*视频音量滑块*/
sliderfun(b1,b2,b3); /*音频音量滑块*/
sliderfun(c1,c2,c3); }
到这里,就通过板块ID 区分解决了不同板块的easyUI控件id冲突问题~
点击按钮,生成一组一组combobox和slider时,避免控件Id相同,导致控件冲突的方法的更多相关文章
- js实现点击按钮时显示弹框,点击按钮及弹框以外的区域时隐藏弹框
转自https://blog.csdn.net/yimawujiang/article/details/86496936 问题:js实现点击按钮时显示弹框,点击按钮及弹框以外的区域时隐藏弹框? 方案一 ...
- 点击按钮回到页面顶部或者某个高度时的问题,JQUERY
$('#shang').click(function(){ $('html,body').animate({scrollTop: '0px'}, 800); }); 不能写成$(window).ani ...
- JS---案例:点击按钮设置div背景色渐变
案例:点击按钮设置div背景色渐变 背景色渐变:设置透明度 <div id="dv"></div> <input type="button& ...
- 点击不同按钮生成不同窗体到某个panel上面,类似Frame用法--不错
//点击不同按钮生成不同页面加载到某个panel上面.procedure TMainForm.DemoButtonClick(Sender: TObject); var NewDemoClass: T ...
- Visual studio C++ MFC之点击按钮(菜单栏)生成新窗口
背景 当前做的APP有菜单栏,菜单栏有一项需要对下位机相关参数进行设置,则必须弹出一个窗口来实现设置操作.本篇即对点击菜单栏生成新的窗口,在新的窗口内完成相应计划后结束新窗口并返回原窗口的方法进行简述 ...
- win32 htmlayout点击按钮创建新窗口,以及按钮图片样式
最近在做一个C++ win32的桌面图形程序,我不是C++程序员,做这个只是因为最近没什么java的活. windows api,之前接触的时候,还是大学,那时用这个开发打飞机游戏纯粹是娱乐.现在基本 ...
- 使用js实现点击按钮下载文件
有时候我们在网页上需要增加一个下载按钮,让用户能够点击后下载页面上的资料,那么怎样才能实现功能呢?这里有两种方法: 现在需要在页面上添加一个下载按钮,点击按钮下载文件. 题外话,这个下载图标是引用的 ...
- response 后刷新页面,点击按钮后,禁用该按钮
一,正常的点击按钮后,将其灰显,全部执行完毕再正常显示. this.btnSave.Attributes.Add("onclick", "if (typeof(Page_ ...
- 关于Asp.Net中避免用户连续多次点击按钮,重复提交表单的处理
Web页面中经常碰到这类问题,就是客户端多次点击一个按钮或者链接,导致程序出现不可预知的麻烦. 客户就是上帝,他们也不是有意要给你的系统造成破坏,这么做的原因很大一部分是因为网络慢,点击一个操作之后, ...
随机推荐
- 2018.07.06 POJ1698 Alice's Chance(最大流)
Alice's Chance Time Limit: 1000MS Memory Limit: 10000K Description Alice, a charming girl, have been ...
- a标签点击后,保证后来的样式
在个人中心中,左侧的菜单(a标签),点击之后,不能够应用新的样式 而在静态界面html 中表现正常,在修改成动态的就不行了 可能是a标签链接经过了后台,当前页面的this对象发生了变化,所以就不能够像 ...
- hibernate createQuery和createSQLQuery 查询结果count计算
createQuery 针对hql语句查询 Query query=getSession().createQuery(hql);int result =((Number) query.iterate( ...
- Shell 基本语法
一. Linux基本命令 1.1. cp命令 该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,功能十分强大. 语法: cp [选项] 源文件或目录 目标文件或目录 1.2. mv命令 用户可 ...
- AWS S3 CLI的安装和配置
以Ubuntu系统为例,说明如何使用CLI调试AWS S3环境: 1. 安装 # sudo pip install awscli 2. 配置AWS CLI 执行命令aws configure, 注意, ...
- java基础-day5
第05天 java基础知识 今日内容介绍 u 方法的概述及基本使用 u 方法的练习及注意事项 u 方法的重载及参数传递 u 方法的操作数组的练习 第1章 方法的概述及基本使用 1.1 方法定义格 ...
- VLC简介及使用说明
一.简介 VLC的全名是Video Lan Client,是一个开源的.跨平台的视频播放器.VLC支持大量的音视频传输.封装和编码格式,完整的功能特性列表可以在这里获得http://www.vi ...
- inline函数的作用
(一)inline函数(摘自C++ Primer的第三版) 在函数声明或定义中函数返回类型前加上关键字inline即把min()指定为内联. inline int min(int first, int ...
- Android sdcard文件读写操作
这次演示以,安卓原生操作系统 Nexus_6手机进行操作: AndroidManifest.xml配置相关权限: <!-- 增加权限 --> <uses-permission and ...
- Oracle Client 连接 Server 并通过代码测试连接
Oracle客户端配置 步骤一: 步骤二: 步骤三: 步骤四: 步骤五: 最后测试成功 注: 如果是客户端配置可以不用添加 程序同样可以进行连接,如果是服务器则需要配置. 程序连接 namespa ...