手動(dòng)觸發(fā)事件實(shí)現(xiàn)checkbox的選中與取消

  1. 要實(shí)現(xiàn)的效果
    如下圖所示,當(dāng)點(diǎn)擊li元素的時(shí)候,實(shí)現(xiàn)左側(cè)checkbox的選中和取消,并且監(jiān)測(cè)選中訂單的數(shù)量和金額變化,將數(shù)據(jù)實(shí)時(shí)綁定到下方的“選擇訂單”和“金額”上面。


    1.png
  2. dom結(jié)構(gòu)
    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>";

  3. js部分
    //observeChange用來(lái)監(jiān)測(cè)checkbox的change事件,并進(jìn)行邏輯處理
    function observeChange(){
    var list = document.getElementById('list');
    //監(jiān)測(cè)所有inputcheckbox)的變化
    mui('#list').on('change','input',function(){
    //選中的checkbox的數(shù)量
    var checkedbox = list.querySelectorAll('input[type="checkbox"]:checked');
    var count = checkedbox.length;
    //將選中的checkbox的數(shù)量賦值給底部的選擇訂單
    orderCount.innerHTML = count;//orderCount即為'選擇訂單'

             var totalMoney = 0;
             //該數(shù)組用來(lái)存儲(chǔ)選中訂單的訂單號(hào)
             SelectIDSArray = [];
             for(var i = 0;i<checkedbox.length;i++){
                 var item = checkedbox[i];
                 //item是通過(guò)ajax從后臺(tái)請(qǐng)求的訂單數(shù)據(jù),該數(shù)據(jù)為JSON數(shù)據(jù)。
                 var obj = JSON.parse(item.getAttribute('data'));
         
                 //將選中的訂單ID存儲(chǔ)起來(lái)
                 SelectIDSArray.push(obj.OrderNum);
                 totalMoney += parseFloat(obj.Money);
             }
             tixianMoney.innerHTML = '¥'+totalMoney.toFixed(2);      
          });
     }
     
     //onListClick用來(lái)手動(dòng)觸發(fā)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');
         }
     }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問(wèn)題, 分享了一些自己做題目的經(jīng)驗(yàn)。 張土汪:刷leetcod...
    土汪閱讀 12,921評(píng)論 0 33
  • jQuery獲取Select選擇的Text和Value: 語(yǔ)法解釋: 1. $("#select_id").cha...
    owen_he閱讀 2,659評(píng)論 0 3
  • 單例模式 適用場(chǎng)景:可能會(huì)在場(chǎng)景中使用到對(duì)象,但只有一個(gè)實(shí)例,加載時(shí)并不主動(dòng)創(chuàng)建,需要時(shí)才創(chuàng)建 最常見(jiàn)的單例模式,...
    Obeing閱讀 2,315評(píng)論 1 10
  • 一)jQuery九類選擇器【參見(jiàn)jQueryAPI.chm手冊(cè)】 目的:通過(guò)九類選擇器,能定位web頁(yè)面(HTML...
    奮斗的老王閱讀 1,083評(píng)論 0 51
  • 關(guān)注簡(jiǎn)書很久了,特別喜歡在這個(gè)平臺(tái)上,看著大家寫的點(diǎn)點(diǎn)滴滴,其實(shí)我的文采并不是特別的好,所以,這篇文章,也純當(dāng)是我...
    主持人三石閱讀 310評(píng)論 0 0

友情鏈接更多精彩內(nèi)容