最近寫前端的js比寫後端的c#程式還要多。用了滿多的plugin,記錄一下@@。
像在做「進階搜尋」UI時滿常看到的:
HTML:
<div id="demo"></div> <div> <input type="button" id="GetUnSelected" value="取得沒選到的元素" /> <input type="button" id="GetSelected" value="取得所有可選擇的元素" /> </div> <div> <h3>Selected Items:</h3> <ul id="SelectedItems"></ul> </div>
引用 jQuery:
<script src="@Url.Content("~/Scripts/jquery.MoverBoxes.js")" type="text/javascript"></script>
jQuery:
$(document).ready(function () { //放置左邊listbox,即是所有可選的元素 var dataLeft = []; dataLeft.push("1, Unassigned Value One"); dataLeft.push("2, Unassigned Value Two"); dataLeft.push("3, Unassigned Value Three"); //放置右邊listbox,即是已選中的元素 var dataRight = []; dataRight.push("4, Assigned Value One"); dataRight.push("5, Assigned Value Two"); $('#demo').MoverBoxes({ 'dataleft': dataLeft, //左邊的元素集合 'dataright': dataRight, //右邊的元素集合 size: 20, 'leftLabel':"Unassigned", //左邊listbox的title 'rightLabel':"Assigned" //右邊listbox的title }); //取得選擇的值(=右邊listbox),並且可以做後續的處理用。 $('#GetSelected').click(function () { //清除所有舊的選取 $('#SelectedItems').html(''); var selectedData = $('#demo').data('MoverBoxes').SelectedValues(); //for each element in the array we will add to the listbox. for (var i in selectedData) { var li_item = document.createElement("li"); $(li_item).html(selectedData[i]) $('#SelectedItems').append(li_item); } }); //取得未選擇的值(=左邊listbox),並且可以做後續的處理用。 $('#GetUnSelected').click(function () { //clear out old $('#SelectedItems').html(''); var selectedData = $('#demo').data('MoverBoxes').NotSelectedValues(); //for each element in the array we will add to the listbox. for (var i in selectedData) { var li_item = document.createElement("li"); $(li_item).html(selectedData[i]) $('#SelectedItems').append(li_item); } }); });
CSS:
.MoverBox { margin: 10px; width: 150px; padding: 5px; height:200px !important; } .MoverBox-label{ display:block; font-weight:bold; padding:10px 10px 0px 10px;} #moveLeft { width:30px;} #moveRight { width:30px;} #moveLeftAll { width:30px;} #moveRightAll { width:30px;} #SelectedItems li { float:left; }
Option | Description |
---|---|
dataleft | Array: The items to be displayed in the left side listbox. |
dataright | Array: The items to be displayed in the right side listbox. |
size | int: controls the height of the boxes. |
leftLabel | string: The label at the top of the left box. |
rightLabel | string: The label at the top of the right box. |
PS:這裡的Option: Size,會讓2個listbox高度變動,所以固定了height:200px。
參考:
Mover Box- https://github.com/kgaddy/Jquery.MoverBoxes
文章標籤
全站熱搜