jquery plugin on a specific element



有什么方法可以为特定元素定义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));

相关内容

最新更新