假设我有这一系列的电话:
var btn = $('#mybtn');
btn.addClass('is-active').text(btn.attr('data-alt-active'));
很明显addClass
会在text
之前被调用,但是btn.attr
何时被调用?在调用text
之前或整个链之前?
答案 0 :(得分:0)
运行此:
<span id="mybtn" data-alt-active="Alternative text">Hello</span>
function aliasWrap(func, msg) {
function _wrapped() {
console.log(msg);
return func.apply(this, arguments);
}
return _wrapped
}
$.fn._addClass = aliasWrap($.fn.addClass, 'addClass called');
$.fn._text = aliasWrap($.fn.text, 'text called');
$.fn._attr = aliasWrap($.fn.attr, 'attr called');
var o = $('#mybtn');
o._addClass('is-active')._text(o._attr('data-alt-active'));
在控制台中输出以下内容:
addClass called
attr called
text called
TL;博士;在链式方法调用内部调用的函数将在调用链式方法之前调用。