Jquery 检查函数是否没有参数在没有大括号的情况下执行它
Jquery check if function has no arguments execute it without curly brackets
我正在开发一个 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
那么我如何像大多数插件一样使用带参数和不带参数的两种方式(大括号)?
非常感谢任何帮助。
您可以在访问
等属性之前检查 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));
我正在开发一个 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
那么我如何像大多数插件一样使用带参数和不带参数的两种方式(大括号)?
非常感谢任何帮助。
您可以在访问
等属性之前检查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));