【问题标题】:How can I reduce Jquery code with the same functionality, but different events如何减少具有相同功能但事件不同的 Jquery 代码
【发布时间】:2019-09-15 00:37:02
【问题描述】:

如何减少此代码?它们的作用相同,即如果两个选择中的任何一个都没有值,则禁用一个按钮。

    //Evento de submenu Canal
    $(document).on('change','select[name="grupoCanalSubMenu"]',function(){
        if (($('select[name="grupoCanalSubMenu"]').children("option:selected").val() == '') || ($('select[name="canalSubMenu"]').children("option:selected").val() == '')) {
            $('#new-usuario-registrar-canal').attr("disabled", true);
        } else{
            $('#new-usuario-registrar-canal').attr("disabled", false);
        }
    });

    //Evento de submenu Canal
    $(document).on('change','select[name="canalSubMenu"]', function(){

        if (($('select[name="grupoCanalSubMenu"]').children("option:selected").val() == '') || ($('select[name="canalSubMenu"]').children("option:selected").val() == '')) {
            $('#new-usuario-registrar-canal').attr("disabled", true);
        } else{
            $('#new-usuario-registrar-canal').attr("disabled", false);
        }
    });

【问题讨论】:

  • 我假设两个函数中的代码是相同的?

标签: jquery events dry


【解决方案1】:

只需使用 css 的逗号分隔符来添加其他选择器。

//Evento de submenu Canal
$(document).on('change','select[name="grupoCanalSubMenu"], select[name="canalSubMenu"]',function(){
    if (($('select[name="grupoCanalSubMenu"]').children("option:selected").val() == '') || ($('select[name="canalSubMenu"]').children("option:selected").val() == '')) {
        $('#new-usuario-registrar-canal').attr("disabled", true);
    } else{
        $('#new-usuario-registrar-canal').attr("disabled", false);
    }
});

【讨论】:

  • 谢谢,我也想这样做,但对我不起作用。但是现在我看到我在每个名字之间都加上了两个引号。像这样: $(document).on('change', 'select[name="grupoCanalSubMenu"]', 'select[name="canalSubMenu"]', function() {
猜你喜欢
  • 2022-01-26
  • 2012-09-08
  • 1970-01-01
  • 1970-01-01
  • 2020-09-13
  • 1970-01-01
  • 1970-01-01
  • 2022-01-11
  • 2018-03-03
相关资源
最近更新 更多