我正在开发一个 jQuery 插件并使用这种方式来构建它。
首先这是我的插件功能:
(function($) {
$.fn.myplugin = function(data) {
var width = data.width || 'auto',
};
}(jQuery));
并且我正在调用该函数来运行,例如:
$('element').myplugin({width: '100px'});
它工作得很好,但如果我调用函数没有参数&大括号,该功能不起作用,并在浏览器控制台中出错:
// Using this way
$('element').myplugin();
// Browser Console
Uncaught TypeError: Cannot read property 'width' of undefined
那么我怎样才能将这两种方式与&没有参数(花括号),像大多数插件一样工作?
非常感谢任何帮助。
答案 0 :(得分:1)
您可以在访问其属性(例如
)之前检查data
是否有值
(function($) {
$.fn.myplugin = function(data) {
var width = (data && data.width) || 'auto',
};
}(jQuery));
我在某些地方使用的另一种做法是分配一个空对象,因为data
的值没有像
(function ($) {
$.fn.myplugin = function (data) {
data = data || {};
var width = data.width || 'auto';
console.log(width)
};
}(jQuery));