如下效果图,点击一次添加按钮,动态生成一组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相同,导致控件冲突的方法的更多相关文章

  1. js实现点击按钮时显示弹框,点击按钮及弹框以外的区域时隐藏弹框

    转自https://blog.csdn.net/yimawujiang/article/details/86496936 问题:js实现点击按钮时显示弹框,点击按钮及弹框以外的区域时隐藏弹框? 方案一 ...

  2. 点击按钮回到页面顶部或者某个高度时的问题,JQUERY

    $('#shang').click(function(){ $('html,body').animate({scrollTop: '0px'}, 800); }); 不能写成$(window).ani ...

  3. JS---案例:点击按钮设置div背景色渐变

    案例:点击按钮设置div背景色渐变 背景色渐变:设置透明度 <div id="dv"></div> <input type="button& ...

  4. 点击不同按钮生成不同窗体到某个panel上面,类似Frame用法--不错

    //点击不同按钮生成不同页面加载到某个panel上面.procedure TMainForm.DemoButtonClick(Sender: TObject); var NewDemoClass: T ...

  5. Visual studio C++ MFC之点击按钮(菜单栏)生成新窗口

    背景 当前做的APP有菜单栏,菜单栏有一项需要对下位机相关参数进行设置,则必须弹出一个窗口来实现设置操作.本篇即对点击菜单栏生成新的窗口,在新的窗口内完成相应计划后结束新窗口并返回原窗口的方法进行简述 ...

  6. win32 htmlayout点击按钮创建新窗口,以及按钮图片样式

    最近在做一个C++ win32的桌面图形程序,我不是C++程序员,做这个只是因为最近没什么java的活. windows api,之前接触的时候,还是大学,那时用这个开发打飞机游戏纯粹是娱乐.现在基本 ...

  7. 使用js实现点击按钮下载文件

    有时候我们在网页上需要增加一个下载按钮,让用户能够点击后下载页面上的资料,那么怎样才能实现功能呢?这里有两种方法: 现在需要在页面上添加一个下载按钮,点击按钮下载文件. 题外话,这个下载图标是引用的 ...

  8. response 后刷新页面,点击按钮后,禁用该按钮

    一,正常的点击按钮后,将其灰显,全部执行完毕再正常显示. this.btnSave.Attributes.Add("onclick", "if (typeof(Page_ ...

  9. 关于Asp.Net中避免用户连续多次点击按钮,重复提交表单的处理

    Web页面中经常碰到这类问题,就是客户端多次点击一个按钮或者链接,导致程序出现不可预知的麻烦. 客户就是上帝,他们也不是有意要给你的系统造成破坏,这么做的原因很大一部分是因为网络慢,点击一个操作之后, ...

随机推荐

  1. Python自动化面试必备 之 你真明白装饰器么?

    Python自动化面试必备 之 你真明白装饰器么? 装饰器是程序开发中经常会用到的一个功能,用好了装饰器,开发效率如虎添翼,所以这也是Python面试中必问的问题,但对于好多小白来讲,这个功能 有点绕 ...

  2. 2018.06.30 BZOJ1857: [Scoi2010]传送带(三分套三分)

    1857: [Scoi2010]传送带 Time Limit: 1 Sec Memory Limit: 64 MB Description 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段 ...

  3. 44 The shopping psychology 购物心理

    The shopping psychology 购物心理 ①People can be addicted to different things ---e. g.,alcohol, drugs, ce ...

  4. Django入门指南-第10章:Django Admin 介绍(完结)

    在浏览器中打开该URL:http://127.0.0.1:8000/admin/ 我们可以检查一切是否正常,打开URL http://127.0.0.1:8000 我们首先创建一个管理员帐户: pyt ...

  5. Web Service测试工具小汇

    1..NET WebService Studio 这款工具出自微软内部,最大的优点是可视化很好,不用去看那些XML文件,WebService的基础内容就有XML,但是测试中Case过多,每次测试结果都 ...

  6. js splice方法

    处理数组的方法很多,javascript splice()算是最强大的了,它可以用于插入.删除或替换数组的元素.下面来一一介绍! 1.删除-用于删除元素,两个参数,第一个参数(要删除第一项的位置),第 ...

  7. UVa 11367 Full Tank? (DP + Dijkstra)

    题意:n个城市有m条道路.每个城市的油价不一样,给出起点s和终点t,以及汽车的油箱的容量,求从城市s到城市 t 的最便宜路径. 析:dp[u][i] 表示在第 u 个城市,还剩下 i L升油,一开始用 ...

  8. 可视化iOS应用程序开发的6个Xcode小技巧

    FIXME 该标签用来提醒你代码中存在稍后某个时间需要修改的部分.(编辑注:网络上有一些可以用来收集项目中`TODO`和`FIXME`标签的辅助插件,比如XToDo https://github.co ...

  9. (小数化分数)小数化分数2 -- HDU --1717

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=1717 举例: 0.24333333…………=(243-24)/900=73/3000.9545454…… ...

  10. Hbase和Hive的异同

    共同点:1.hbase与hive都是架构在hadoop之上的.都是用hadoop作为底层存储 区别:2.Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBa ...