如下效果图,点击一次添加按钮,动态生成一组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. 【Unity】2.4 层次视图(Hierarchy)

    分类:Unity.C#.VS2015 创建日期:2016-03-29 一.简介 层级视图 (Hierarchy) 包含当前场景中的每个游戏对象 (GameObject).有些是三维模型等资源文件的直接 ...

  2. 《Linux多线程服务端编程——使用muduo C++网络库》读书笔记

    第一章 线程安全的对象生命期管理 第二章 线程同步精要 第三章 多线程服务器的适用场合与常用编程模型 第四章 C++多线程系统编程精要 1.(P84)11个常用的最基本Pthreads函数: 2个:线 ...

  3. mysql 经典错误解决方案 :Incorrect string value 'xE6x95x85xE4xBAx8B...' for column

    1.关闭当前服务器2.删除正在使用的数据库drop database 数据库名字;3.查看字符集, SHOW VARIABLES LIKE 'character_set_%'; 把所有latin1的都 ...

  4. UVaLive 2796 Concert Hall Scheduling (最小费用流)

    题意:个著名的音乐厅因为财务状况恶化快要破产,你临危受命,试图通过管理的手段来拯救它,方法之一就是优化演出安排,既聪明的决定接受或拒绝哪些乐团的演出申请,使得音乐厅的收益最大化.该音乐厅有两个完全相同 ...

  5. Java 原始类型JComboBox的成员JComboBox(E())的调用 未经过检查

    问题描述: 根据书上的代码 ,编译时候出现以下问题 自定义了一个字符数组: private String[] grades = {"1","2","3 ...

  6. 20170908工作日记--Volley源码详解

    Volley没有jar包,需要从官网上下载源码自己编译出来,或者做成相关moudle引入项目中.我们先从最简单的使用方法入手进行分析: //创建一个网络请求队列 RequestQueue reques ...

  7. sqlite3数据库,增删改查

    搜索libsql //由于文件读写,归档,NSUserDefault,做持久存储的时候,是一个覆盖的过程,效率太低,更多的时候使用数据库来做持久化存储         //鉴于手机的硬件配置,使用轻量 ...

  8. Get异步请求

    1: 使用代理 //1.delegate         //创建url      NSURL *url = [[NSURL alloc] initWithString:@"http:ima ...

  9. netty 原理

    netty 实现 1. 各组件之间的关系 每个ServerBootstrap与一个事件循环对象(一个线程)都会与一个Channel绑定,如NioServerSocketChannel 2. 如何绑定 ...

  10. android注解处理技术APT

    APT(Annotation Processing Tool)是java的注解处理技术,它对源代码文件进行检测找出其中的Annotation,根据注解和注解处理器和相应的apt自动生成代码. Anno ...