点击按钮,生成一组一组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.09.23 bzoj1076: [SCOI2008]奖励关(期望+状压dp)
传送门 一道神奇的期望状压dp. 用f[i][j]f[i][j]f[i][j]表示目前在第i轮已选取物品状态为j,从现在到第k轮能得到的最大贡献. 如果我们从前向后推有可能会遇到不合法的情况. 所以我 ...
- gj7 对象引用、可变性和垃圾回收
7.1 python变量到底是什么 #python和java中的变量本质不一样,python的变量实质上是一个指针 int str, 便利贴 a = 1 a = "abc" #1. ...
- Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.liuyang.JDbCTemplate.PersonDao]: No default constructor fo
错误是说我的配置文件中没有对构造函数进行配置,所以找不到构造函数,在配置文件application.xml中加入如下句子: <bean id="personDao" clas ...
- DataFrame按行读取:DataFrame之values
http://blog.csdn.net/u014607457/article/details/51290582 def fill_core(self): RatingTable=pd.read_cs ...
- ansible-playbook api 2.0 直接运行
官方文档见 http://docs.ansible.com/ansible/dev_guide/developing_api.html 拿官方的例子修改如下 import json from col ...
- cmake检测g++编译器是否支持c++11
# 相关链接:https://cmake.org/cmake/help/v3.0/module/CheckCXXCompilerFlag.htmlinclude(CheckCXXCompilerF ...
- 高翔《视觉SLAM十四讲》从理论到实践
目录 第1讲 前言:本书讲什么:如何使用本书: 第2讲 初始SLAM:引子-小萝卜的例子:经典视觉SLAM框架:SLAM问题的数学表述:实践-编程基础: 第3讲 三维空间刚体运动 旋转矩阵:实践-Ei ...
- visual studio 2015 rc &cordova -hello world
初始环境,用来看看书,电影,上上网的win8,所以一切从头开始. 1,首先还是装visual studio 2015 rc吧,目前只放出在线安装,所以要很长很长时间.不过有新闻说很快要实现中国网友至 ...
- Create a site by Google Site - All Free
Follow this link : https://www.google.com/sites/help/intl/en/overview.html
- Git安全配置
今天收到了阿里云异地登录的短信报警,登录阿里云后台发现,有人从深圳登录了我的服务器(本人在北京),查看详细信息一共登录了5次,前两次是使用的git用户进行登录,后两次已经变成了root用户,怀疑是 ...