jQuery object disabled event listener, how to detect when a html attribute changes

前端 未结 2 1782
傲寒
傲寒 2020-12-07 03:06

I need to make an event listener for a select tag. It should be triggered any time the element becomes disabled or enabled.

Is

2条回答
  •  感情败类
    2020-12-07 03:39

    JQuery 1.6+

    You can change jQuery prophooks:

    jQuery.propHooks.disabled = {
      set: function (el, value) {
        if (el.disabled !== value) {
          el.disabled = value;
          value && $(el).trigger('disabledSet');
          !value && $(el).trigger('enabledSet');
        }
      }
    };
    

    This will trigger "disabledSet" if element is disabled via:

    $(element).prop('disabled', true);
    

    and will trigger "enabledSet" if element is enabled via:

    $(element).prop('disabled', false);
    

    Then you can just listen to your event like this:

    $(element).on('disabledSet', myDisabledHandler);
    

提交回复
热议问题