jQuery $(this)vs. variable

前端之家收集整理的这篇文章主要介绍了jQuery $(this)vs. variable前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
鉴于:
var element = $('#element');

我想知道哪个更快:

element.click(function(){
    element.dosomething()
)}

要么:

element.click(function(){
    $(this).dosomething()
)}

还是重要?

解决方法

使用元素.

如果element是一个匹配单个元素的jQuery集合,例如$(someId),那么只需使用它.

如果选择器是为了匹配多个元素,那么元素实际上是元素,一个元素的集合,所以在这种情况下,你可以在你的点击处理程序中使用$(this)来捕获实际点击的元素.

差异在下面的例子中解释:

单元件处理器

var table = $("#myTable");
table.click(function() {
    // Same as $(this),except $(this) creates another
    //  wrapper on the same object (which isn't too expensive anyway)
    table.doSomething();
});

2-处理多个元素

var rows = $("#myTable > tbody > tr");
rows.click(function() {
    // Here we have to use $(this) to affect ONLY the clicked row
    $(this).doSomething();
});

3处理器在单个元素上,但是要求多个子元素

var table = $("#myTable");
// "on" and "live" call handler for only child elements matching selector
// (Even child elements that didn't exist when we added the handler,as long as parent -table in this case- exists)
table.on("click","tbody > tr",function() {
    // Here we have to use $(this) to affect ONLY the clicked row
    $(this).doSomething();
});

我发现它确保(并且减少工作,一个非常小的差异)只是现有的包装,显示我期待一个单一的元素在这种情况下,我只是使用它.当我处理匹配元素集合的元素时,使用$(this).

原文链接:https://www.f2er.com/jquery/176527.html

猜你在找的jQuery相关文章