-
要实现的效果
如下图所示,当点击li元素的时候,实现左侧checkbox的选中和取消,并且监测选中订单的数量和金额变化,将数据实时绑定到下方的“选择订单”和“金额”上面。
dom结构
strVar += "<li class="mui-table-view-cell" data-flag = "0" onclick="onListClick(this)">";
strVar += "<a class="mui-navigate-right">";
strVar += "<div class="mui-checkbox mui-pull-left checkboxArea">";
strVar += "<input name="checkbox" value="" type="checkbox" data='"+JSON.stringify(temp)+"'>";
strVar += "</div>";
strVar += "<div class="mui-pull-right tixianInfo" >";
strVar += "<p class="orderByInfo mui-clearfix">";
strVar += "<span class="orderByName mui-pull-left">"+temp.ShareClientName+"</span>";
strVar += "<span class="orderTime mui-pull-right">"+temp.AddTime.split(' ')[0]+"</span>";
strVar += "</p>";
strVar += "<p class="proInfo">";
strVar += "<span class="ProName">"+temp.ProName+"</span>";
strVar += "<span class="proPrice">¥"+temp.TrueTotal+"</span>";
strVar += "<span class="proCount">x"+temp.Number+"</span>";
strVar += "</p>";
strVar += "<p class="orderTiCheng">此订单获得提成:¥"+temp.Money+"</p>";
strVar += "</div>";
strVar += "</a>";
strVar += "</li>";-
js部分
//observeChange用来监测checkbox的change事件,并进行逻辑处理
function observeChange(){
var list = document.getElementById('list');
//监测所有inputcheckbox)的变化
mui('#list').on('change','input',function(){
//选中的checkbox的数量
var checkedbox = list.querySelectorAll('input[type="checkbox"]:checked');
var count = checkedbox.length;
//将选中的checkbox的数量赋值给底部的选择订单
orderCount.innerHTML = count;//orderCount即为'选择订单'var totalMoney = 0; //该数组用来存储选中订单的订单号 SelectIDSArray = []; for(var i = 0;i<checkedbox.length;i++){ var item = checkedbox[i]; //item是通过ajax从后台请求的订单数据,该数据为JSON数据。 var obj = JSON.parse(item.getAttribute('data')); //将选中的订单ID存储起来 SelectIDSArray.push(obj.OrderNum); totalMoney += parseFloat(obj.Money); } tixianMoney.innerHTML = '¥'+totalMoney.toFixed(2); }); } //onListClick用来手动触发checkbox的change事件,切换checkbox的选中和取消 function onListClick(obj){ var flag = obj.getAttribute('data-flag'); if(flag == 0){ $(obj).find('input')[0].checked = true; obj.setAttribute('data-flag',1); $($(obj).find('input')[0]).trigger('change'); }else{ $(obj).find('input')[0].checked = false; obj.setAttribute('data-flag',0); $($(obj).find('input')[0]).trigger('change'); } }
手动触发事件实现checkbox的选中与取消
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
- jQuery获取Select选择的Text和Value: 语法解释: 1. $("#select_id").cha...