Два трюка . В основном, инвертирование HTML-кода ваших желаемых элементов в HTML и использование ~
Операторы следующего сиблинга :
float-right
+ инвертируют порядок HTML элементы
div{ /* Do with the parent whatever you know just to make the
inner float-right elements appear where desired */
display:inline-block;
}
span{
float:right; /* float-right the elements! */
}
span:hover ~ span{ /* On hover target it's "previous";) elements */
background:red;
}
<div>
<!-- Reverse the order of inner elements -->
<span>5</span>
<span>4</span>
<span>3</span>
<span>2</span>
<span>1</span>
</div>
direction: rtl;
+ инвертирует порядок внутренних элементов
.inverse{
direction: rtl;
display: inline-block; /* inline-block to keep parent at the left of window */
}
span:hover ~ span{ /* On hover target it's "previous";) elements */
background:gold;
}
Hover one span and see the previous elements being targeted!<br>
<div class="inverse">
<!-- Reverse the order of inner elements -->
<span>5</span>
<span>4</span>
<span>3</span>
<span>2</span>
<span>1</span>
</div>
Ключом к этому является изучение объекта события , который передается - ваш пример этого не делает. Как только вы можете изучить событие, вы можете увидеть диапазон, который был затронут. Затем сравните с любым критерием (ваш находится в пределах A1: L30, то есть в первых 30 строках и в 12 столбцах листа 1):
function onEdit(e) {
var editedRange = e.range; // This is what got edited
var editedSheet = editedRange.getSheet(); // Ranges belong to a sheet
if (
(editedSheet.getName() == "Sheet1") // correct sheet?
&& (editedRange.getColumn() <= 12) // column L is number 12
&& (editedRange.getRow() < 30) // We're on row 30 or less
) {
var time = new Date();
time = Utilities.formatDate(time, "GMT", "HH:mm:ss");
editedSheet.getRange("K17").setValue(time);
}
}