javascript - $element.click 与 $('element' ).click

标签 javascript jquery

我正在尝试优化部分代码,我想知道我应该使用以下哪一项,为什么,其中一项相对于另一项有什么好处?

$('element').click(function() { /* do something */ })

let $element = $('element')
$element.click(function() { /* do something */ })

最佳答案

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

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(/*...*/) 等)

关于javascript - $element.click 与 $('element' ).click,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45079215/

相关文章:

javascript - 在div中显示if else函数的结果

javascript - 如何让文本字段为空?这是怎么回事?

jQuery tablesorter - 连字符以及带小数的数字( float )导致排序问题

javascript - 通过 `href` `onmousedown` 事件更改 ,`click` s 链接

javascript - 每个动态生成元素仅单击一次

javascript - 如何通过在 Rails 4.0 中使用 javascript 单击复选框将文本区域字段值复制到另一个文本区域字段

javascript - JavaScript 中的电话号码格式

javascript - 使用ajax刷新div内容

javascript - 即使 HTML 5 验证停止表单提交也会调用 jQuery 提交函数

javascript - 在 Laravel 项目中将 .html 文件更改为 .php 文件后页面无法工作