Chaîne .ready et .resize en fonction?

À l’intérieur de cet object, j’ai une propriété Response.action qui est censée être un raccourci pour déclencher le code sur les .resize .ready et .resize simultanément. Le commentaire dans le bloc de code ci-dessous illustre son utilisation. Response.action fonctionne sur .ready mais pas sur .resize . Quelqu’un peut-il voir pourquoi et / ou suggérer comment le faire fonctionner pour les deux?

 window.Response = (function($, window, undefined) { var Response = {}, // object $window = $(window), $document = $(document); // cache selectors /* Response.action() This sortingggers code on .ready *and* .resize usage: Response.action( myactions ); function myactions() { // do stuff } */ action = function( code ) { var code = ( code !== undefined ) ? wrap() : false; // apply wrap() if we have code function wrap() { $document.ready(function() { $window.resize(function() { code // input }).resize(); // sortinggger resize handlers }); // close .ready function } return code; // wrapped code fires on .ready and .resize }, Response.action = action; return Response; // return object })(jQuery, window); // expose to global object 

Ceci est pour responsejs.com – la bibliothèque complète (en cours) est là.

J’utilise l’une des autres propriétés pour le tester. La propriété .band est solide en elle-même:

 Response.action( myactions() ); function myactions() { if ( Response.band(600) ) { $('header').html('600px or wider'); } else { $('header').html('below 600px'); } } 

Mise à jour : cela fonctionne:

Response.action = function (func) {if (typeof func! == ‘function’) {return false; }

 $(function () { func(); $window.resize( func ); }).resize(); return func; 

};

avec cette syntaxe d’utilisation:

 Response.action( myactions ); function myactions() { // do stuff } 

* Notez que dans l’appel, il doit s’agir de myactions par opposition à myactions()

Que diriez-vous

 window.Response = (function ( $, window, undefined ) { var Response = {}; Response.action = function ( func ) { if ( typeof func !== 'function' ) { return false; } $(function () { func(); $( window ).resize( func ); }); return func; }; return Response; })( jQuery , window );