点击按钮,生成一组一组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页面中经常碰到这类问题,就是客户端多次点击一个按钮或者链接,导致程序出现不可预知的麻烦. 客户就是上帝,他们也不是有意要给你的系统造成破坏,这么做的原因很大一部分是因为网络慢,点击一个操作之后, ...
随机推荐
- mysql的UseAffectedRows问题 以及其他常见配置说明
遇到MySQL中on duplicate key update语句返回值不正确: 在server5.1.*的返回分别为insert=1,update=3,nochange=2 在server5.5.* ...
- hdu-1050(贪心+模拟)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1050 思路:由图可知,1对应2,3对应4,以此类推,如果x,y是偶数则变为奇数: 每次输入两个区间,找 ...
- sql join用法(转)
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只 ...
- GitBash入门
转载自:http://www.cnblogs.com/randomsteps/p/5415116.html 作为一个初学者,我是跟着廖学峰老师的官方博客学习,这里只是做个笔记,哈哈,关于git的历史. ...
- siganl tappII的应用及MATLAB调用
1.在应用SIGNAL TAPPII时一定要把不用的端口设置为输入三态,否则观察不到数据. 2.用SIGNAL TAPII 观察数据时双向是观察不到数据的,但模块内部用于传输双向口数据的寄存器可以看到 ...
- iOS的block内存管理
初始情况下: block本身.__block修饰的变量以及在block内部使用的变量都是在栈里的. __block修饰的变量的地址会作为实参传入block块内部(暂时先这么理解,实际比较复杂).blo ...
- Android属性动画之ValueAnimator的介绍
之前两篇博客,介绍的是ObjectAnimator作用与某一个控件的某一个属性.但我们的ValueAnimator它本身并不会作用与任何一个属性,它本身也不会提供任何一种动画.它简单的来说,就是一个数 ...
- hibernate的一级缓存问题
1.证明一级缓存的问题 输出结果: 只发出一条查询语句 第二条查询语句没有执行 因为第一条查询语句缓存的存在 2. 移除缓存: 输出结果: 3.一级缓存的快照 就是对一级缓存的数据备份 保证数据库的 ...
- http://blog.csdn.net/zgl07/article/details/43491399
转载申明:本文转载自http://www.brendangregg.com/perf.html 请大家看了之后如果要转载一定要注上这个地址!!! ========================= ...
- [javascript library]使用js实现页面刷新后依然保留表单填写的数据
详情请见于该链接:http://sisyphus-js.herokuapp.com/