再次参考jQuery链中的原始选择

时间:2013-08-29 18:36:05

标签: jquery

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

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

2 个答案:

答案 0 :(得分:4)

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

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

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

var $c = $('#clicker');
$c.css('background-color', $c.attr('originalcolor'));

答案 1 :(得分:3)

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

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