在这个对象内,我有一个属性 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 - 完整的库(正在进行中)就在那里。
我正在使用其他属性之一来测试它。 .band
属性本身是可靠的:
Response.action( myactions() );
function myactions() {
if ( Response.band(600) ) { $('header').html('600px or wider'); }
else { $('header').html('below 600px'); }
}
更新:这有效:
响应.action = 函数 ( 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 );
关于javascript - 将 .ready 和 .resize 链接到函数中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7372852/