当前位置:嗨网首页>书籍在线阅读

09-解决方案

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

5.2.2 解决方案

在调用 setTimeout() 之前将this`保存在一个变量中:

$(document).ready( function() {
   $('.clicky').click( function() {
     var element = this;
     $(element).addClass('clicked');
     setTimeout( function() {
        $(element).removeClass('clicked');
     }, 1000 );
   });
});

更好的做法是,因为将在两个位置调用 $() ,按照秘诀5.3中的建议,将 $(this) 复制到一个变量中,代替this:

$(document).ready( function() {
   $('.clicky').click( function() {
     var $element = $(this);
     $element.addClass('clicked');
     setTimeout( function() {
        $element.removeClass('clicked');
     }, 1000 );
   });
});