title: Listen to multiple events on the same element to fire
body: <p>I need your help, because I'm at the end of my wits. I am trying to wait for multiple events on form elements. To show you what I mean, here is an example:</p>
  <pre><code>var el = this,
      conditions = $( this ).data( 'conditions' ),
      promises = [];
  
  $( conditions ).each( function () {
      var def = new $.Deferred(),
          condition = this;
  
      $( el ).hide();
  
      $( this.listener ).on( 'change', function () {
          if ( $( '#' + condition.target ).is( ':checked' ) ) {
              def.resolve( 'show' );
          } else {
              def.resolve( 'hide' );
          }
  
          promises.push( def );
      } );
  } );
  
  $.when.apply( undefined, promises ).done( function ( res ) {
      console.log( res );
  } );
  </code></pre>
  <p>The idea behind this is, that I can listen to a select element and check the value that the user has selected. If the condition validates to true, another element is shown.</p>
  <p>The problem now is: If I have another condition on the same element both listeners geht executed, one validating true, and the other false.</p>
  <p>So I tried it with deferred. The above example works correctly for the first time. If the user is emitting an event again the deferred does not get resolved a second time. I was expecting this, because a promise can only resolve once.</p>
  <p>The other way is, if I only use pure jQuery listeners, they both get fired and the last attached listener shows or hides the element. But i need to evaluate all listeners at once.</p>
  <p>My question is now, how could I solve the problem? May someone give me a hint on how this could be implemented?</p>