首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >要避免的jQuery陷阱

要避免的jQuery陷阱
EN

Stack Overflow用户
提问于 2009-08-04 18:52:37
回答 22查看 39.8K关注 0票数 211

我正在和jQuery一起开始一个项目。

您在jQuery项目中有哪些陷阱/错误/误解/滥用/误用?

EN

回答 22

Stack Overflow用户

回答已采纳

发布于 2009-08-04 19:07:43

没有意识到性能影响,过度使用选择器,而不是将它们赋给局部变量。例如:

$('#button').click(function() {
    $('#label').method();
    $('#label').method2();
    $('#label').css('background-color', 'red');
});

而不是:

$('#button').click(function() {
    var $label = $('#label');
    $label.method();
    $label.method2();
    $label.css('background-color', 'red');
});

even better with chaining:-

$('#button').click(function() {
    $("#label").method().method2().css("background-color", "red"); 
});

当我意识到调用堆栈是如何工作的时,我发现this是一个启发性的时刻。

编辑:将建议合并到评论中。

票数 190
EN

Stack Overflow用户

发布于 2009-08-04 19:21:22

了解如何使用上下文。通常,jQuery选择器将搜索整个文档:

// This will search whole doc for elements with class myClass
$('.myClass');

但你可以通过在上下文中搜索来加快速度:

var ct = $('#myContainer');
// This will search for elements with class myClass within the myContainer child elements
$('.myClass', ct);
票数 91
EN

Stack Overflow用户

发布于 2009-08-04 18:59:31

尝试拆分匿名函数,以便可以重用它们。

//Avoid
$('#div').click( function(){
   //do something
});

//Do do
function divClickFn (){
   //do something    
}

$('#div').click( divClickFn );
票数 36
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1229259

复制
相关文章

相似问题

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