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

前端 未结 2 1779
傲寒
傲寒 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

    It is possible using this jquery .watch plugin.

    http://darcyclarke.me/development/detect-attribute-changes-with-jquery/

    The plugin detects for css changes, but i edited it in this JSfiddle to work for attributes.

    Check out this JSfiddle.

    0 讨论(0)
  • 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);
    
    0 讨论(0)
提交回复
热议问题