jquery模擬多級復(fù)選框效果的簡單實(shí)例

字號:


    今天又次體會到j(luò)query的強(qiáng)大了,做了個(gè)多級復(fù)選框的效果,代碼總共就20+行就over了。
    我又想用js來做一個(gè)看看,才寫了幾個(gè)方法就寫不動(dòng)了,兼容性要考慮很多,而且代碼量直線上升。
    主要分享下jquery的這個(gè)效果的實(shí)現(xiàn)。代碼塊分兩塊:
    一是全選的效果,就是點(diǎn)擊全選的復(fù)選框時(shí)它的子孫都相應(yīng)被選中或者未選中。這個(gè)很好做,代碼如下:
    代碼如下:
    evtEle.parent().next(".checks").find("input:checkbox").attr("checked", evtEle[0].checked);//evtEle是點(diǎn)擊的復(fù)選框
    二是當(dāng)前復(fù)選框的父框根據(jù)當(dāng)前框的兄弟是否全選中來決定父框是否選中,再繼續(xù)往上看父框的父框等。
    當(dāng)全選中時(shí)這里的實(shí)現(xiàn)使用parents來得到所有的父框,對每一個(gè)的操作結(jié)合each來完成。
    當(dāng)非全選中時(shí)父框依次失去被選中。代碼如下:
    代碼如下:
    if (evtEle.is("input:checked")) {
              evtEle.parents(".checks").each(function () {
                !$(this).children("p").children("input:checkbox").filter(function () {
                  return !this.checked;
                })[0] && $(this).prev().children("input:checkbox").attr("checked", "checked");
              });
            } else {
              evtEle.parents(".checks").prev().children("input:checkbox").attr("checked", false);
            }
    以上這篇jquery模擬多級復(fù)選框效果的簡單實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考