我想知道如何链接我的自定义函数并维护“ this”的上下文。
例子:
$.fn.foo = function() {
var html = '<div class="foo"></div>';
if ($(this).hasClass(somthing) {
$(this).prepend(html);
}
}
$.fn.bar = function() {
var html = '<h3>bar</h3>';
$(this).find('.foo').prepend(html);
}
$('body').foo().bar();
当我尝试使用此代码时,出现TypeError:无法读取未定义的属性“ bar”
您需要返回当前元素的上下文,即this
从您的自定义方法返回。
$.fn.foo = function() {
var html = '<div class="foo"></div>';
if ($(this).hasClass('somthing')) {
$(this).prepend(html);
}
return this; //The magic statement
}
$.fn.bar = function() {
var html = '<h3>bar</h3>';
$(this).find('.foo').prepend(html);
return this; //The magic statement
}
$('body').addClass('somthing').foo().bar();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句