jQuery – 链接自定义函数

我想知道如何链接我的自定义函数并维护’this’的上下文。

例:

$.fn.foo = function() { var html = '
'; if ($(this).hasClass(somthing) { $(this).prepend(html); } } $.fn.bar = function() { var html = '

bar

'; $(this).find('.foo').prepend(html); } $('body').foo().bar();

当我尝试使用此代码时,我得到一个TypeError:无法读取未定义的属性“bar”

您需要返回当前元素上下文,即从自定义方法返回。

 $.fn.foo = function() { var html = '
'; if ($(this).hasClass('somthing')) { $(this).prepend(html); } return this; //The magic statement } $.fn.bar = function() { var html = '

bar

'; $(this).find('.foo').prepend(html); return this; //The magic statement } $('body').addClass('somthing').foo().bar();
  

归还this

 $.fn.foo = function() { var html = '
'; if ($(this).hasClass(somthing) { $(this).prepend(html); } return this; }; $.fn.bar = function() { var html = '

bar

'; $(this).find('.foo').prepend(html); return this; }; $('body').foo().bar();