так нельзя$.ajax({url: 'actions.php', method: 'POST', data: { data-action: 'create_user', });
{ 'data-action': 'create_user'}
<button data-action="create-user">Create user</button>
<button data-action="delete-user">Delete user</button>
$('button').click(function() {
var el = $(this);
$.ajax({url: 'actions.php', method: 'POST', data:
{
'action': el.data('action'),
});
});
<a class="my_button" href="actions.php?action=create_user&number=1">Создать пользователя</a>
$.ajax({
url: 'actions.php',
method: 'POST',
data: {
'action': 'create_user'
})
$_GET['action']
$_GET['number']
data-
атрибуты нужны на клиенте, чтобы удобно передавать какае-то данные внутри html элемента:<a class="my_button" data-action="create_user" data-number="1">Создать пользователя</a>
console.log(
document.querySelector('.my_button').dataset
)
{
"action":"create_user",
"number":"1"
}
const group = (arr, key) =>
arr.reduce((acc, n) => {
const k = n[key];
(acc[k] = acc[k] || []).push(n);
return acc;
}, {});
const result = Object.values(group(array, 'prop'));
function group(data, key, val = n => n) {
const getKey = key instanceof Function ? key : n => n[key];
const getVal = val instanceof Function ? val : n => n[val];
const grouped = {};
for (const n of data) {
(grouped[getKey(n)] ??= []).push(getVal(n));
}
return grouped;
}
const groupedBySign = group([ 0, 1, 2, 3, -10, -20, -30, 0 ], Math.sign);
const groupedByParity = group(Array(10).keys(), n => [ 'чётные', 'нечётные' ][n & 1]);
const chars = group(
'ABC123?!+',
n =>
n.toLowerCase() !== n.toUpperCase() ? 'буква' :
Number.isInteger(+n) ? 'цифра' :
'другое'
);
<input name="xxx" value="69">
<input name="xxx" value="187">
<input name="xxx" value="666">
<input name="yyy" value="0">
const values = group(document.querySelectorAll('input'), 'name', 'value');
const result = Object.values(Object.groupBy(array, n => n.prop));
Через обертку <div class="container-avatar"><Avatar/></div>
- в этом варианте лишний html елемент
.disable-all-buttons button {
pointer-events: none; /* отключаем реакцию на клик и тап */
opacity: 0.6; /* делаем кнопку "бледной" */
}
data: () => ({
items: [
{ active: false, text: '...' },
{ active: false, text: '...' },
...
],
}),
<div
v-for="n in items"
v-text="n.text"
:class="[ { active: n.active }, 'toggle' ]"
@click="n.active = !n.active"
></div>
а как сделать чтобы не городить кучу даныx в data?
data: () => ({
itemsCount: 5,
active: [],
}),
methods: {
toggle(item) {
const i = this.active.indexOf(item);
if (i === -1) {
this.active.push(item);
} else {
this.active.splice(i, 1);
}
},
},
<div
v-for="i in itemsCount"
v-text="`Item ${i}`"
:class="[ { active: active.includes(i) }, 'toggle' ]"
@click="toggle(i)"
></div>
Object.defineProperty(NodeList.prototype, "addEventListener", {
value: function (event, callback, useCapture) {
useCapture = ( !! useCapture) | false;
for (var i = 0; i < this.length; ++i) {
if (this[i] instanceof Node) {
this[i].addEventListener(event, callback, useCapture);
}
}
return this;
}
});
Здравствуйте, у меня возникла идея о создании полноценной игры-стратегии, написанной на JavaScript.
для создания игры-стратегии для разных устройств на языке JS (возможно в браузере)
что лучше мне использовать
Я бы хотел услышать ваши советы
p test: {{ isNewDesign }}