À 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 );