首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$element.click vs $('element').click

$element.click vs $('element').click
EN

Stack Overflow用户
提问于 2017-07-13 11:24:32
回答 3查看 67关注 0票数 0

我试图优化我的代码的部分,我想知道我应该使用以下哪一个,为什么,一个比另一个有什么好处?

代码语言:javascript
复制
$('element').click(function() { /* do something */ })

代码语言:javascript
复制
let $element = $('element')
$element.click(function() { /* do something */ })
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-07-13 11:26:15

它们之间的唯一区别是,在第二个变量中,有一个引用jQuery对象的变量,可以重用该变量。只有当您想要重用它时,您才需要它,例如:

代码语言:javascript
复制
let $element = $("element");
$element.click(function() { /* ... */ });
if (someCondition) {
    $element.addClass("whatever");
} else {
    $element.find("some-child").remove();
}
// ...

在上面的部分中重复$("element")部件会更多地输入,并且需要重复查找DOM中的元素并反复创建新的jQuery对象,这比重用同一个对象效率要低一些。

有时您不需要变量,因为jQuery的API是为链接而设计的。(这就是为什么我在上面加入了if,这样我就可以做$("element").click(/*...*/).addClass(/*...*/).find(/*...*/)等等了。)

票数 3
EN

Stack Overflow用户

发布于 2017-07-13 11:27:12

这主要取决于我的一个问题--我会再次使用那个选择器吗?

如果答案是“是”,则“是”,定义要使用的变量并将其用于.on函数,如果只有一次,则使用更多的字符来定义它,然后只使用它。但是没有太大的差别(除非你选择了方法1并在整个过程中重用选择器)

票数 1
EN

Stack Overflow用户

发布于 2017-07-13 11:37:11

如果元素被引用一两次,则意味着option1更好。但是,如果元素被多次引用,则意味着选项2更好,因为您只深入dom一次,即使它被多次引用,并且它将提高性能和良好的编码实践。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45079215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档