是否有(可能未记录的)占位符$.noop
用于 jQuery 连接?
要在以下内容中使用:
$('selector')[true ? 'method' : '<function that does nothing>']().doSomething();
我已经尝试了很多并最终得到了这个:
$.fn.noop = function(){ return this; };
但也许jQuery核心中已经有这样的功能了?
是否有(可能未记录的)占位符$.noop
用于 jQuery 连接?
要在以下内容中使用:
$('selector')[true ? 'method' : '<function that does nothing>']().doSomething();
我已经尝试了很多并最终得到了这个:
$.fn.noop = function(){ return this; };
但也许jQuery核心中已经有这样的功能了?
选项一:
使用$.fn.splice
. 它在那里并且一直存在,但它也没有记录(因此它可能在未来不存在),不可读,并且不需要任何参数。
选项二:
$.fn.noop = function(){return this}
. 可靠、可读、可预测、快速。喜欢#1 的唯一原因是开发时间。
选项三(首选):使用条件插件插件,这是需要可链接无操作的唯一原因,例如Ben Alman 的 IFF 插件(或自己编写)。
优点:转弯
... [condition?'method':'noop']() ...
进入:
... .iff(condition).method().end() ...
也就是说,它比 #2 更具可读性,而且您不仅限于一次通话。iff
只要您正确展开堆栈,您甚至可以遍历或嵌套您的条件。
缺点:它是一个插件,你需要获取它;它要求您在对空集合进行操作时调用的方法是无操作的。所有标准的 jQuery 函数(除了add
)都是。