结束()函数

Posted

技术标签:

【中文标题】结束()函数【英文标题】:end() function 【发布时间】:2010-09-15 00:13:46 【问题描述】:

jQuery 中的end() 函数将元素集恢复到上次破坏性更改之前的状态,因此我可以看到它应该如何使用,但我看过一些代码示例,例如:on alistapart (可能来自旧版本的 jQuery - 这篇文章来自 2006 年).end() 结束了每个语句。例如:

$( 'form.cmxform' ).hide().end();
这有什么影响吗? 我也应该这样做吗? 上面的代码到底返回了什么?

【问题讨论】:

【参考方案1】:

end() 什么也没做。这样编码是没有意义的。它将返回$('#myBox')——这个例子很糟糕。更有趣的是这样的:

$('#myBox').show ().children ('.myClass').hide ().end ().blink ();

这将显示myBox,隐藏指定的子项,然后使框闪烁。这里还有更多有趣的例子:

http://simonwillison.net/2007/Aug/15/jquery/

如:

$('form#login')
    // hide all the labels inside the form with the 'optional' class
    .find('label.optional').hide().end()
    // add a red border to any password fields in the form
    .find('input:password').css('border', '1px solid red').end()
    // add a submit handler to the form
    .submit(function()
        return confirm('Are you sure you want to submit?');
    );

【讨论】:

哦,是的,我的意思是,我理解它的用法,我只是想知道代码背后是否有一些推理,例如示例。 是的,我就是这么想的……这几乎就是我从 alistapart (alistapart.com/articles/prettyaccessibleforms) 那里得到的代码。 ALA 通常很擅长他们的技术,所以我想知道我是否遗漏了什么。【参考方案2】:

来自jquery doc有一个例子:

$('ul.first').find('.foo')
  .css('background-color', 'red')
.end().find('.bar')
  .css('background-color', 'green')
.end();

然后是澄清:

最后一个 end() 是不必要的,因为我们会立即丢弃 jQuery 对象。然而,当以这种形式编写代码时,end() 提供了视觉上的对称性和完成感——至少在一些开发人员的眼中,使程序更具可读性,但代价是对性能的轻微影响这是一个额外的函数调用。

【讨论】:

以上是关于结束()函数的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL 函数上的函数定义意外结束

结束()函数

jquery动画函数里面可以跟一个回调函数,表示动画结束后执行的代码

在 C++ 中,是不是可以从将结束父函数的嵌套函数中返回?

C语言中输入函数等待输入和结束输入

如何成功等待函数结束?