Чтобы передать обычную функцию в плагин jquery, а затем вызвать эту функцию внутри плагина?
Могу ли я передать обычную функцию js в плагин jquery и затем вызвать эту функцию внутри плагина?
(function($){
$.fn.extend({
responsive: function(options,callbacks) {
var defaults = {
setup: {},
windowTargetWidth: 1903,
beforeRespond: function() {},
onRespond: function() {},
onElse: function() {}
};
var options = $.extend(defaults, options);
var o = options;
var $this = this;
return this.ready(function(e){
var window_loaded_width = $(window).width();
$(window).resize(function() {
options.beforeRespond(ratio);
// Make the website responsive
if(window_loaded_width < o.windowTargetWidth )
{
// call the function
setup.func;
//options.onRespond(ratio);
}
else
{
var window_resized_width = $(window).width();
var ratio = window_resized_width/window_loaded_width;
options.onElse(ratio);
}
});
});
}
});
})(jQuery);
$(window).responsive({
setup: {
func: responsive_element(ratio)
},
beforeRespond: function(ratio){
// something happens...
},
onRespond: function(ratio){
responsive_element(ratio);
},
onElse: function(ratio){
responsive_element(ratio);
}
});
function responsive_element(ratio){
$("#container").css({
"width": 5400 * ratio
});
}
Конечно, я получаю ошибку -
соотношение не определено
для этой линии,
func: responsive_element(ratio)
Может я не так делаю?
Причина, по которой я хочу передать функцию и вызвать ее в плагине, заключается в том, что она повторяется responsive_element(ratio)
дважды или больше, когда я присоединяю этот плагин к объекту $(window).responsive({...})
В идеале мне просто нужно вставить функцию один раз в setup
или где-то - это возможно?
1 ответ
В вашем случае для вызова функции в вашем плагине используйте o.beforeRespond.call(this)