0

我有一个“clicker” div 和一个“popup” div。clicker div 有一个“originalcolor”属性,用于描述 clicker 最初的颜色。双击弹出窗口时,我想隐藏弹出窗口并将点击器的颜色更改回其 originalcolor 属性中定义的颜色。下面的代码可以工作,但似乎应该有一种更简洁的方法来在第 3 行中第二次获得 #clicker 选择,而不是重复$('#clicker').

$('#popup').dblclick(function(){
    $(this).hide();
    $('#clicker').css('background-color', $('#clicker').attr('originalcolor'));
});
4

2 回答 2

4

您可以传递.css一个函数而不是值:

$('#clicker').css('background-color', function(){
    return $(this).attr('originalcolor');
});

或者,更简单地说,缓存$('#clicker')

var $c = $('#clicker');
$c.css('background-color', $c.attr('originalcolor'));
于 2013-08-29T18:40:54.517 回答
3

我在这里看到的唯一可能更干净的方法是缓存 jQuery 选择结果:

$('#popup').dblclick(function(){
    $(this).hide();
    var $clicker = $('#clicker');
    $clicker.css('background-color', $clicker.attr('originalcolor'));
});
于 2013-08-29T18:41:36.503 回答