我正在尝试构建一个简单的jquery插件,可以将选择器作为参数。我发现的所有例子都期望比实际选择器更多的原始“属性”(宽度,颜色等)。有没有什么好方法可以做到这一点?
我发现了这篇文章:Passing jquery selector to sub-function within a plugin
但我还是比较困惑。
目标有点像......
(function ($) {
$.fn.demonstration = function (options) {
var defaults = {
$selector: null
};
var options = $.extend(defaults, options);
return this.each(function () {
alert($selector.attr('id'));
});
};
})(jQuery);
$('body').demonstration({ $selector: $('#canvas') });
答案 0 :(得分:4)
选择器只不过是一个字符串。只要您对jQuery()($)调用进行任何访问,人们就可以传递任何东西(选择器字符串,jQuery对象,DOM元素等)。
编辑:看到您添加了代码,在这种情况下,您应该通过$(options.$selector).attr('id')
访问它。
出于好奇,为什么选择前的$?