链.ready和.resize成function?

在这个对象中,我有一个属性Response.action ,它是一个在jQuery的.ready.resize同时触发代码的简写。 下面的代码块中的注释演示了它的用法。 Response.action适用于.ready但不适用于.resize 。 任何人都可以看到为什么和/或建议如何使它适用于两者?

 window.Response = (function($, window, undefined) { var Response = {}, // object $window = $(window), $document = $(document); // cache selectors /* Response.action() This triggers 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(); // trigger 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 

这是针对responsejs.com的 – 完整的lib(正在进行中)就在那里。

我正在使用其他属性之一来测试它。 .band属性本身就是可靠的:

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

更新 :这有效:

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

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

};

使用此用法语法:

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

*请注意,在调用中它需要是myactions而不是myactions()

怎么样

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