Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $element.click vs$(';element';)。单击_Javascript_Jquery - Fatal编程技术网

Javascript $element.click vs$(';element';)。单击

Javascript $element.click vs$(';element';)。单击,javascript,jquery,Javascript,Jquery,我正在尝试优化我的部分代码,我想知道我应该使用以下哪一个,为什么,一个比另一个有什么好处 $('element').click(function() { /* do something */ }) 或 它们之间唯一的区别是,在第二个变量中,您有一个引用jQuery对象的变量,可以重用该变量。仅当您想重新使用它时,才需要它,例如: let $element = $("element"); $element.click(function() { /* ... */ }); if (someCond

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

$('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
,这样我就可以只做
$(“元素”)。单击(/*…*/).addClass(/*…*/)。查找(/*…*/)
等等。)

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

let $element = $("element");
$element.click(function() { /* ... */ });
if (someCondition) {
    $element.addClass("whatever");
} else {
    $element.find("some-child").remove();
}
// ...
重复上面的
$(“element”)
部分需要更多的键入,并且需要在DOM中重复查找元素并重复创建新的jQuery对象,这比重用同一个对象的效率要低


有时您不需要变量,因为jQuery的API是为链接而设计的。(这就是为什么我在上面输入了
if
,这样我就可以只做
$(“元素”)。单击(/*…*/).addClass(/*…*/)。查找(/*…*/)
等等)

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


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

这主要取决于一个问题——我会再次使用该选择器吗


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

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

它们在所有意图和目的上都是相同的。您正在进行微优化。如果您需要在应用程序的其他部分中使用元素引用,将其缓存在变量中肯定是一个好主意,相反,或者再次重复相同的$('selector')是使用var$element=$('element')的一个好选项;就好像进一步的代码需要使用$element一样,它将是可恢复的。它们在所有意图和目的上都是相同的。您正在进行微优化。如果您需要在应用程序的其他部分中使用元素引用,将其缓存在变量中肯定是一个好主意,相反,或者再次重复相同的$('selector')是使用var$element=$('element')的一个好选项;如果进一步的代码需要使用$element,那么它将是可恢复的