jquery插件语法
我正在尝试创建jquery插件,我希望有以下选项:jquery插件语法,jquery,Jquery,我正在尝试创建jquery插件,我希望有以下选项: $.plugin\u名称(变量) $(选择器)。插件名称(变量) 第一种情况下,插件不需要应用于某个元素(例如,它可以创建一个),第二种情况下,同一插件将对所选元素执行任何操作 我的问题是:如何在插件中指定: if (selector is not given) { create an element } else { ( for example) insert variable in elements matching the sel
$.plugin\u名称(变量)
$(选择器)。插件名称(变量)
if (selector is not given) {
create an element
} else {
( for example) insert variable in elements matching the selector
}
对于在jQuery对象上操作的插件,可以使用
jQuery.fn.myPluginName=function()..
对于jQuery
命名空间中的独立函数,只需设置jQuery.func\u name=function()…
例如:
jQuery.fn.erase = function() {
return this.each(function() {
jQuery(this).remove();
});
};
jQuery("body").erase();
jQuery.erase = function(element) {
jQuery(element).erase();
};
jQuery.erase("body"); // exact same result.
要涵盖
$。plugin\u name()
请使用:
jQuery.plugin_name = function(data) {
// do stuff
}
jQuery.fn.plugin_name = function() {
return this.each(function() {
// do stuff
});
};
对于$(选择器)。插件名称()
使用:
jQuery.plugin_name = function(data) {
// do stuff
}
jQuery.fn.plugin_name = function() {
return this.each(function() {
// do stuff
});
};
请参阅。使用
$.myFunc
只需向jQuery命名空间添加一个函数
通过使用$.fn.myFunc
,您正在扩展jQuery原型,这意味着函数中的this关键字将表示从选择器返回的jQuery对象
如果您想让它们做相同的事情,可以检查jQuery实例并创建新元素:
试试这个:
$.myFunc = $.fn.myFunc = function(first, second) {
if (!(this instanceof $)) {
return $.fn.myFunc.apply($('<div>'), arguments);
}
// begin plugin code here:
return this.each(function() {
$(this).text(first + ' ' + second);
});
};
// now you can call myFunc in two ways:
$('<div>').myFunc('foo','bar').appendTo('body')
$.myFunc('bar','foo').appendTo('body');
$.myFunc=$.fn.myFunc=函数(第一,第二){
如果(!(此实例为$){
返回$.fn.myFunc.apply($(''),参数);
}
//在此处开始插件代码:
返回此值。每个(函数(){
$(此).text(第一个+“”+第二个);
});
};
//现在,您可以通过两种方式调用myFunc:
$('').myFunc('foo','bar')。appendTo('body'))
$.myFunc('bar','foo')。appendTo('body');
我真的想知道是否有一种方法可以编写一个插件,它可以同时完成这两项功能。。。如果没有给出选择器,它将创建一个元素……因此理想情况下,它可以同时被称为$.pluginName()或$(选择器)。pluginName()而不是或。谢谢你这是不可能的,至少我是这么理解的