在jquery函数中设置变量
好吧,我知道,标题听起来可能有点奇怪 以下问题: 我有一个jquery函数,如下所示:在jquery函数中设置变量,jquery,Jquery,好吧,我知道,标题听起来可能有点奇怪 以下问题: 我有一个jquery函数,如下所示: (function($){ $.fn.myFunction = function(opts){ var settings = { params: {} }; } if ( options ) { $.extend( settings, options ); } } $('#elem').myFunctio
(function($){
$.fn.myFunction = function(opts){
var settings = {
params: {}
};
}
if ( options ) {
$.extend( settings, options );
}
}
$('#elem').myFunction({'data':'test','data2': 'test2'});
现在,该函数应用于如下元素:
(function($){
$.fn.myFunction = function(opts){
var settings = {
params: {}
};
}
if ( options ) {
$.extend( settings, options );
}
}
$('#elem').myFunction({'data':'test','data2': 'test2'});
如何从函数外部访问settings属性
也就是说,在函数初始化之后,我想更改一些设置-但我不知道如何更改
有什么想法吗
(希望不要太混淆我写的内容:)您必须将变量提升到更高级别的范围
(function ($) {
// we expose your variable up here
var settings = {
};
$.fn.myFunction = function (opts) {
// ...instead of down here
// do something with settings, like:
opts = $.extend({}, settings, opts);
}
// you can then access a "shared" copy of your variable even here
if (options) {
$.extend(settings, options);
}
})(jQuery);
如果你必须进一步暴露它,你只需要按照同样的要点来工作
但是,作为旁注,请注意调用$.extend(设置,选项)
将修改设置
变量。在不修改原始设置的情况下执行相同操作的一个好方法是对空对象调用$.extend()
,然后像我在示例中的第一个$.extend()
调用一样缓存返回
var modified_options = $.extend({}, settings, options);
谢谢你。。。但是我需要在初始化对象时更改设置,而不调用对象的函数。当我试图从对象外部访问«设置»时,我得到一个错误,表示未定义«设置»。