有什么方法可以为特定元素定义jquery插件吗?喜欢javascript提供的方式吗?
例如,
在javascript中,我可以像这样做
HTMLSelectElement.prototype.loadData = function () {
//do something
};
有了这个,我可以在select
上使用loadData
函数,我如何用jQuery做到这一点?
我知道,
(function ($) {
$.fn.loadData = function () {
//do something
};
}(jQuery));
但是,如何确保我使用此插件的元素是select
元素而不是其他元素?
您可以在函数开始时停止它:
(function ($) {
$.fn.loadData = function () {
var index = 0, $this = $(this), length = $this.length;
for ( ; index < length; index++) {
var current = $this[index];
if (!$(current).is('select')) {
return;
}
}
// do something
};
}(jQuery));
EDIT:已更新以处理对多个元素的调用插件。谢谢费利克斯!
您可以使用.is()(http://api.jquery.com/is/)测试$(this)是否是函数中的select元素。
(function ($) {
$.fn.loadData = function () {
if (!$(this).is('select')){
return;
}
};
}(jQuery));