jquery change event callback

24,487

Solution 1

You can probably make use of event bubbling and register a callback in the document.

$(document).on('change', '#element', function(){
    console.log('after all callbacks')
});

Demo: Fiddle

Solution 2

I just spent some time exploring this myself, and decided to submit my answer to this question as well. This is not utilizing any of jQuery's deferred methods, which might be a better approach. I haven't explored them enough to have an opinion on the matter.

$("#element").change(function() {
  handler().after(callBack($("#element").val()));
}

function handler() {
  alert("Event handler");
}

function callBack(foo) {
  alert(foo);
}

Demo: JSFiddle

Share:
24,487
Alireza41
Author by

Alireza41

Updated on July 24, 2022

Comments

  • Alireza41
    Alireza41 almost 2 years

    How to call a function once after change() event complete?

    for example, something like this: ( I know jQuery Doesn't have callback method as default )

    $('#element').change( function(){
                         // do something on change
                         // $('#milestonesSelect').multiselect({ minWidth: 120 , height : '200px' ,selectedList: 4  }).multiselectfilter();
                          // some animation calls ...
                          // ...
                         }, function(){
                         // do something after complete
                          alert('another codes has completed when i called');
                         }
                       );
    

    Is it possible to call a single callback after all the codes on change method done, except call a complete callback for every functions on it?

    I need to do something after the change event has completed

    Shall I need to set order to methods in change handler?

  • Alireza41
    Alireza41 about 11 years
    as you said this will execute code only one time after a change event is fired but I need to do something after event completed not fired. I don't want to do it at the same time with another executions
  • pspahn
    pspahn about 9 years
    And what if your events are already triggered in this way? ie. jQuery('#myelement').on('change', 'select,input', function(){ ... do stuff }); How would you attach a callback after these changes are triggered?
  • vivek
    vivek over 6 years
    event bubbling link is not working in your answer. Please update for later use.
  • Kamran
    Kamran almost 4 years
    handler().after() is undefined