用于保留 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)都是。

相关内容

  • 没有找到相关文章

最新更新