在做一个列表选择的功能,要实现一个Jquery列表选择器的效果,如图就是很常见的一种列表选择器



不过网上开源的可能要积分,资料没找到合适的,所以自己就简单写了一下,其实实现也不是很难。实现思路:左边双击之后获取元素,在右边附加上就好,右边选择列表双击之后就移除元素

实现效果:

因为系统功能是easyui做的,页面左边是一个table,也是easyui的datagrid,所以就可以调对应方法获取双击某行的元素

创建前端页面:

<rapid:override name="content">
<div region="west" split="true" title="待选列表" style="width:400px;" >
<div class="site-search" >
<div id="search">
<input type="text" name="s" class="text" id="areaName" placeholder="输入地区名称搜索" />
<button type="button" onclick="javascript:queryOption.doQuery(1);" class="submit">搜索</button>
</div>
</div>
<input type="hidden" value="${tipsSeq}" id="tipsSeq"/>
<table id="areaList"></table>
</div>
<div region="center" title="已选列表" style="border:0;">
<table id="selectedList" style="width:100%;"></table>
</div>
<div region="south" >
<div align="right" style="height:31px;">
<input type="button" onclick="javascript:treeOption.closeDialog();" value="取消" />
<input type="button" onclick="javascript:treeOption.batchBind();" value="下一步" />
</div>
</div>
</div>
</rapid:override>

给右边的列表加上选择后就改变颜色为蓝色的css代码:

#selectedList tr:hover{
background-color: #99ccff; color: #252525; cursor: pointer;
}
#selectedList tr:selected{
background-color: #0095E8; color: #fff;
}

主要函数是调用easyui的双击事件,然后将获取到的数据放在addNodeToList函数里再调用,下面给出easyui的所有代码和自己写的addNodeToList函数

onDblClickRow :function(rowIndex,rowData){
var selections = $("#areaList").datagrid('getSelections');
var areaSeq = selections[0].areaSeq;
var areaName = selections[0].areaName;
var status = selections[0].tipsAreaRelaStatus;
if(status =='1'){
$.messager.alert("操作提示","已配置过该提示语,继续配置数据将覆盖旧数据!","warning");
return;
}
//添加节点
addNodeToList(1,areaSeq,areaName,status);
}
$('#areaList').treegrid({
fit: true,
nowrap: true,
autoRowHeight: true,
animate:true,
scrollbarSize: 0,
striped: true,
collapsible:true,
singleSelect:true,
rownumbers:true,
url:'/loadTipsAreaRelatedData.do?tipsSeq='+$("#tipsSeq").val(),
idField:'areaSeq',
treeField:'areaName',
columns:[[
{field:'ck', checkbox: true, hidden:true},
{field:'areaSeq', hidden:true},
{field:'areaName',title:'地区名称',width:'60%'},
{field:'tipsAreaRelaStatus',title:'状态',width:'40%',
formatter: function (val, rowdata, index) {
if(val =='1'){
return '<span style="color:#00B2EE;">已配置</span>';
}else{
return '<span>未配置</span>';
}
}
}
]],
onBeforeLoad:function(row,param){//加载之前
if(row){
$(this).treegrid('options').url = '/loadSubTipsAreaRelatedData.do?tipsSeq='+$("#tipsSeq").val()+'&parentAreaSeq=' + row.areaSeq;
}else{
$(this).treegrid('options').url = '/loadTipsAreaRelatedData.do?tipsSeq='+$("#tipsSeq").val();
}
},
onDblClickRow :function(rowIndex,rowData){
var selections = $("#areaList").datagrid('getSelections');
var areaSeq = selections[0].areaSeq;
var areaName = selections[0].areaName;
var status = selections[0].tipsAreaRelaStatus;
if(status =='1'){
$.messager.alert("操作提示","已配置过该提示语,继续配置数据将覆盖旧数据!","warning");
return;
}
//添加节点
treeOption.addNodeToList(1,areaSeq,areaName,status);
}
});
function addNodeToList(n,areaSeq,areaName,status){
var tableStr = $("#selectedList");
var trStr = "<tr id="+areaSeq
+" class='datagrid-row' ondblclick='javascript:removeNodeToList("+areaSeq+");''>"
+"<td>"+areaName+"</td></tr>";
var tr = $("#selectedList").find("tr");
var trNum = tr.length;
if(trNum == 0){
tableStr.append(trStr);
}else{
var count = 0;
//思路是:遍历表格,如果有元素就再添加,没有那个元素就添加
$("#selectedList tr").each(function(){
var id =$(this).attr("id");
if(areaSeq == id){
count++;
}
});
if(count==0){
tableStr.append(trStr);
}
}
}

右边列表双击可以移除元素:

function removeNodeToList(areaSeq){
$("#selectedList").find("#"+areaSeq).remove();
}

思路:左边双击之后获取元素,在右边附加上就好,右边选择列表双击之后就移除元素

Jquery+Eayui实现列表选择功能的更多相关文章

  1. 多行滚动jQuery循环新闻列表代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. javascript和jquery中获取列表的索引

    网页中的图片预览一般都需要获取图片列表的索引,或则图片对应的标签的索引,以此达到点击相应的标签获取索引,显示相应的图片 列表有很多种表达的方式,一种是 <ul> <li>苹果& ...

  3. jquery.dragsort实现列表拖曳、排序

    在一次工作中需要将功能模块实现拖曳并且排序,并且将排序结果保存到数据库,用户下次登录后直接读取数据库排序信息进行显示.LZ找了好多插件,最后发现 jquery.dragsort 这款插件是最好使用的, ...

  4. jquery动态添加列表后样式失效解决方式

    最近在做一个通讯录,使用jquery mobile方式来做,在动态添加列表后,listview原有的样式失效,折腾一会,找出解决办法.代码如下. <%@ page language=" ...

  5. jquery mobile listview列表属性(搜索自动填充检索效果)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  6. JQuery加载列表实现动画滚动(自上而下挤)

    这个例子是jquery动态加载列表,并通过定时刷新,实现其循环滚动效果的一个例子. 1.HTML代码: <div class="fake-table"> <li ...

  7. multiselect2side:jQuery多选列表框插件

    http://blog.csdn.net/rosanu_blog/article/details/8550723 http://www.bkjia.com/jQuery/449193.html < ...

  8. jQuery取得循环列表的第一列值

    有例如以下的表格: <table class="list_tab" id="personalDetail"> <tr class=" ...

  9. jQuery入门——实现列表的显示隐藏与实现轮播图

    列表的显示与隐藏 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head& ...

随机推荐

  1. Numpy 线性代数

    Numpy 提供了线性代数库 linalg , 该库包含了线性代数所需的所有功能,可以看卡下面的说明: 函数 描述 dot 两个数组的点积, 即元素对应相乘 vdot 两个向量的点积 inner 两个 ...

  2. 合适IT人的健身技巧

    合适IT人的健身技巧: 健身益寿生活十条 虽然遗传学家说人的平均寿命可长达120岁,但本世纪人的寿命远远达不到这个数字^有鉴于此,国外一批医生.心理学家和营养学家制定了健身益寿生活10条准则,认为如能 ...

  3. 【第一次作业】&&软件工程大一班---甘昀

    这个作业属于哪个课程: <课程的链接点这里>  这个作业要求在哪里: <作业要求的链接点这里> 我在这个课程的目标是:  学会软件开发的流程和思想 这个作业在哪个具体方面帮助我 ...

  4. Atom使用

    cmd-r 通过方法名查找 ctrl-option-g 跳转至光标所在方法或结构 安装 last-cursor-position 后 alt-- 返回至光标上一次所在位置

  5. Python+Selenium 利用ID,XPath,tag name,link text,partial link text,class name,css,name定位元素

    使用firefox浏览器,查看页面元素,我们以“百度网页”为示例 一.ID定位元素    利用find_element_by_id()方法来定位网页元素对象 ①.定位百度首页,输入框的元素 ②.编写示 ...

  6. 20175316盛茂淞 2018-2019-2 《Java程序设计》第8周学习总结

    20175316盛茂淞 2018-2019-2 <Java程序设计>第8周学习总结 教材学习内容总结 第十五章 泛型 -- 主要目的是可以建立具有类型安全的集合框架,如链表.散列映射等数据 ...

  7. ffmpeg 推流相关指令

    1.rtsp->rtsp(只解封装,不解码) ffmpeg -re -rtsp_transport tcp -i rtsp://usr:passwd@ip:port/h264/ch1/sub/a ...

  8. cropper.js 裁剪图片

    https://blog.csdn.net/weixin_38023551/article/details/78792400

  9. 贝叶斯公式52张牌猜黑桃A策略

    贝叶斯公式52张牌猜黑桃A策略 考虑有208平行世界,其中有4个世界(1/52)的黑桃A方在第一张牌的位置,余下204个世界中,有4个世界的黑桃A在第2张牌的位置,4个世界在第3张牌的位置..... ...

  10. 09-JS的事件流的概念(重点)

    在学习jQuery的事件之前,大家必须要对JS的事件有所了解.看下文 事件的概念 HTML中与javascript交互是通过事件驱动来实现的,例如鼠标点击事件.页面的滚动事件onscroll等等,可以 ...