i
в момент выполнения document.getElementsByClassName("desc")[i]
будет тем же, что и в момент выполнения acc[i].addEventListener
есть ни на чём не основанная фантазия, не соответствующая реальности.i
в заголовке цикла с помощью let
- тогда да, работать будет..desc
нет необходимости. Можно от кликнутой кнопки подняться до .tab-pane
и там переключить класс, который изменит видимость .desc
:.active .desc {
display: block;
}
const itemSelector = '.tab-pane';
const buttonSelector = `${itemSelector} .material_info`;
const activeClass = 'active';
const toggle = el => el.closest(itemSelector).classList.toggle(activeClass);
// слушаем клики на кнопках
document.querySelectorAll(buttonSelector).forEach(function(n) {
n.addEventListener('click', this);
}, e => toggle(e.target));
// или, применяем делегирование - назначаем обработчик один раз общему предку кнопок,
// внутри проверяем, где случился клик
document.addEventListener('click', ({ target: t }) => {
if (t = t.closest(buttonSelector)) {
toggle(t);
}
});
return abs(($a['value'] - $c_v) - ($b['value'] - $c_v)); // тут возможно бред - уже изменял 100000 раз и запутался
usort($arr, function($a, $b){
$c_v = 2.6;
return ceil(abs($a['value'] - $c_v) - abs($b['value'] - $c_v));
});
const random = (min, max) =>
Math.floor(Math.random() * (max - min + 1)) + min;
function createMatrix(rows, cols, min, max) {
const matrix = [];
for (let i = 0; i < rows; i++) {
matrix.push([]);
for (let j = 0; j < cols; j++) {
matrix[i][j] = random(min, max);
}
}
return matrix;
}
// или
const createMatrix = (rows, cols, min, max) =>
Array.from({ length: rows }, () =>
Array.from({ length: cols }, () =>
random(min, max)
)
);
function outputMatrix(matrix, el) {
const table = document.createElement('table');
matrix.forEach(function(n) {
const tr = this.insertRow();
n.forEach(m => tr.insertCell().textContent = m);
}, table.createTBody());
el.appendChild(table);
}
// или
function outputMatrix(matrix, el) {
el.insertAdjacentHTML('beforeend', `
<table>
<tbody>${matrix.map(n => `
<tr>${n.map(m => `
<td>${m}</td>`).join('')}
</tr>`).join('')}
</tbody>
</table>
`);
}
outputMatrix(createMatrix(5, 5, 10, 30), document.body);
что-то мне подсказывает, что сам подход не верен
возможно вообще стоит разделить all и остальной список чекбоксов?
v-model="selected"
на v-model="selected[i]"
.null
, которые vue подставляет для индексов без установленных значений, то массив можно заменить объектом. Хочу научиться использовать последние стандарты (ES7, ES8), смотрел их разные фишки, хотелось бы попробовать, но как эти стандарты можно активировать?
Видел фишки что то вроде "Точечный синтаксис"
Что-то вроде этого:
console.log ('Привет Мир!');
можно заменить на
c.l.'Привет Мир!'..
a = [
{:car=>["BMW", "Mersedes", "Audi"]},
{:car=>["Renault", "Ferrari", "Nissan"]},
{:car=>["VW"]},
{:country=>["Russia", "Japan", "USA"]},
{:country=>["China", "Nigeria", "Egypt"]},
{:city=>["Moscow", "Tokyo", "Amsterdam"]}
]
b = a.group_by{|n| n.keys[0]}.map{|k, n| {k => n.map{|m| m[k]}}}
$scope.items = [ 1, 2, 3, 4, 5, 6, 7, 8 ].map(n => ({
value: n,
show: false,
}));
<li ng-repeat="item in items">
<a ng-click="item.show = !item.show">toggle</a>
<div ng-show="item.show">
hello, world!!
</div>
{{ item.value }}
</li>
self.model.child = response.data.folders;
self.$set(self.model, 'child', response.data.folders);
new Worker("PrimeWorker.js");
А вот соответственно и код PrimeWork.js:
Функция продолжает работу после инструкции return true
checkPalindrome(newStr);
return checkPalindrome(newStr);
class App extends React.Component {
state = {
divStyle: {
display: 'flex',
alignItems: 'center',
width: '1000px',
height: '500px',
outline: '1px solid red',
position: 'relative',
},
move: {
position: 'absolute',
width: '200px',
height: '100px',
outline: '1px solid green',
left: 100,
top: 200,
},
}
handlerMouseDown = e => {
this.deltaX = e.pageX - this.ourdiv.offsetLeft;
this.deltaY = e.pageY - this.ourdiv.offsetTop;
window.addEventListener('mousemove', this.handlerMouseMove);
}
handlerMouseUp = e => {
window.removeEventListener('mousemove', this.handlerMouseMove);
}
handlerMouseMove = ({ pageX }) => {
this.setState(({ move }) => ({
move: {
...move,
left: Math.min(700, Math.max(100, pageX - this.deltaX)),
},
}));
}
render() {
return (
<div>
<div style={this.state.divStyle}>
<div
ref={ourdiv => this.ourdiv = ourdiv}
style={this.state.move}
onMouseDown={this.handlerMouseDown}
onMouseUp={this.handlerMouseUp}
></div>
</div>
</div>
);
}
}