Discuss / JavaScript / 简化,简化!

简化,简化!

Topic source

function updateLabel() { let allChecked = langs.filter(':checked').length === langs.length

    selectAll.prop('checked', allChecked)
    let doOne = allChecked ? 'hide' : 'show';
    let doTwo = allChecked ? 'show' : 'hide';
    eval('selectAllLabel' + doOne + '();deselectAllLabel' + doTwo + '()');
}

selectAll.change(() =>  {
    langs.prop('checked', selectAll.is(':checked'))
    updateLabel()
});

invertSelect.click(() => {
    langs.click()
});

langs.change(() => updateLabel());

eval用法有问题

function updateLabel() { let allChecked = langs.filter(':checked').length === langs.length

    selectAll.prop('checked', allChecked)
    if (allChecked) {
        selectAllLabel.hide()
        deselectAllLabel.show()
    } else {
        selectAllLabel.show()
        deselectAllLabel.hide()
    }
}

selectAll.change(() => {
    langs.prop('checked', selectAll.is(':checked'))
    updateLabel()
})

invertSelect.click(function (e) {
    langs.click()
})

langs.change(() => updateLabel())

  • 1

Reply