比如我想要有个jquery插件拥有
$("#a").my() //执行alert(1);
$("#a").my.ok() //执行alert("ok");
$("#a").my.beiju() //执行alert("beiju");
这个怎么写?
但是我想他们的$(this)对象都为$("#a")
比如我想要有个jquery插件拥有
$("#a").my() //执行alert(1);
$("#a").my.ok() //执行alert("ok");
$("#a").my.beiju() //执行alert("beiju");
这个怎么写?
但是我想他们的$(this)对象都为$("#a")
函数本身也是对象,直接加属性就行
var my = function() {
alert(1);
}
my.ok = function() {
alert("ok");
}
//beiju 同上
$.fn.my = my
发现绑定 this 真有点麻烦,再想想
Object.defineProperty($.fn, "my", {
get: function () {
var my = function() {
alert(1);
}
my.ok = function() {
return this
}.bind(this[0]);
return my
}
});
$('body').my.ok() == $('body')[0] //true
自己才疏学浅,勉强想了这么个法子,不知道有没有高人教我
你该了解一下jqery的插件写法
$.fn.my=function(){
alert(1)
}
$('#box').my()
$.fn
,$.fn.extend()
和$.fn.extend()
13 回答13k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
6 回答1.1k 阅读
定义
测试
JsFiddle
http://jsfiddle.net/rq50h6e7/