Bubbles No / Yes
When dispatched on the Document element, this event type MUST bubble to the Window object.
if( event.originalEvent.animationName === 'toRightAnim4' ...
var macro1;
macro = 'CODE:';
macro += 'SET !ERRORIGNORE YES' + '\x0A';
macro += 'SET !EXTRACT NULL' + '\x0A';
macro += 'SET !EXTRACT_TEST_POPUP NO' + '\x0A';
var macro2;
macro1 = 'CODE:';
macro1 += 'Wait seconds=15.7' + '\x0A';
macro1 += 'SET !EXTRACT NULL' + '\x0A';
macro1 += 'TAG POS=1 TYPE=SPAN ATTR=CLASS:"Numbers HighlightedText UserBalance" EXTRACT=TXT' + '\x0A';
var macro3;
macro2 = 'CODE:';
macro2 += 'TAG POS=1 TYPE=DIV ATTR=ID:MaxBetButton' + '\x0A';
macro2 += 'TAG POS=1 TYPE=DIV ATTR=ID:DivideBetButton' + '\x0A';
macro2 += 'TAG POS=1 TYPE=DIV ATTR=ID:DivideBetButton' + '\x0A';
macro2 += 'TAG POS=1 TYPE=DIV ATTR=ID:DivideBetButton' + '\x0A';
macro2 += 'TAG POS=1 TYPE=DIV ATTR=ID:DivideBetButton' + '\x0A';
macro2 += 'TAG POS=1 TYPE=DIV ATTR=ID:DivideBetButton' + '\x0A';
macro2 += 'TAG POS=1 TYPE=DIV ATTR=ID:DivideBetButton' + '\x0A';
macro2 += 'TAG POS=1 TYPE=DIV ATTR=ID:DivideBetButton' + '\x0A';
macro2 += 'TAG POS=1 TYPE=DIV ATTR=ID:DivideBetButton' + '\x0A';
macro2 += 'TAG POS=1 TYPE=DIV ATTR=ID:DivideBetButton' + '\x0A';
macro2 += 'TAG POS=1 TYPE=DIV ATTR=ID:DivideBetButton' + '\x0A';
macro2 += 'TAG POS=1 TYPE=DIV ATTR=ID:DivideBetButton' + '\x0A';
macro2 += 'TAG POS=1 TYPE=DIV ATTR=ID:DivideBetButton' + '\x0A';
iimPlay(macro);
var BetsNow = 0;
var LossNow = 0;
var WinBet = 0;
var Balance = 0;
var BalanceNow = 0;
while (true) {
WinBet = 1;
BetsNow = 0;
LossNow = 0;
Balance = 0;
BalanceNow = 0;
iimPlay('CODE:TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:BetChanceInput CONTENT=90');
iimPlay(macro2);
while (WinBet == 1) {
iimPlay(macro1);
Balance = parseFloat(iimGetLastExtract());
BalanceNow = Balance;
if (Math['random']() <= 0.5) {
iimPlay('CODE:EVENT TYPE=CLICK SELECTOR="#BetLowButton" BUTTON=0')
} else {
iimPlay('CODE:EVENT TYPE=CLICK SELECTOR="#BetHighButton" BUTTON=0')
};
while (BalanceNow == Balance) {
iimPlay(macro1);
BalanceNow = parseFloat(iimGetLastExtract());
};
if (BalanceNowBalance) {
WinBet = 1
} else {
iimPlay('CODE:TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:BetChanceInput CONTENT=95');
iimPlay('CODE:EVENT TYPE=CLICK SELECTOR="#MultiplyBetButton" BUTTON=0');
iimPlay('CODE:EVENT TYPE=CLICK SELECTOR="#MultiplyBetButton" BUTTON=0');
iimPlay('CODE:EVENT TYPE=CLICK SELECTOR="#MultiplyBetButton" BUTTON=0');
iimPlay('CODE:EVENT TYPE=CLICK SELECTOR="#MultiplyBetButton" BUTTON=0');
iimPlay('CODE:EVENT TYPE=CLICK SELECTOR="#MultiplyBetButton" BUTTON=0');
iimPlay(macro1);
Balance = parseFloat(iimGetLastExtract());
BalanceNow = Balance;
if (Math['random']() <= 0.5) {
iimPlay('CODE:EVENT TYPE=CLICK SELECTOR="#BetLowButton" BUTTON=0')
} else {
iimPlay('CODE:EVENT TYPE=CLICK SELECTOR="#BetHighButton" BUTTON=0')
};
while (BalanceNow == Balance) {
iimPlay(macro1);
BalanceNow = parseFloat(iimGetLastExtract());
};
if (BalanceNow > Balance) {
WinBet = 1
} else {
iimPlay('CODE:TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:BetSizeInput EXTRACT=TXT');
LossNow = parseFloat(iimGetLastExtract()) * 1.25;
while (WinBet == 0) {
BetsNow = LossNow / 0.08;
iimSet('Bet', BetsNow);
iimPlay('CODE:TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:BetSizeInput CONTENT={{Bet}}');
iimPlay(macro1);
Balance = parseFloat(iimGetLastExtract());
BalanceNow = Balance;
if (Math['random']() <= 0.5) {
iimPlay('CODE:EVENT TYPE=CLICK SELECTOR="#BetLowButton" BUTTON=0')
} else {
iimPlay('CODE:EVENT TYPE=CLICK SELECTOR="#BetHighButton" BUTTON=0')
};
while (BalanceNow == Balance) {
iimPlay(macro1);
BalanceNow = parseFloat(iimGetLastExtract());
};
if (BalanceNow > Balance) {
WinBet = 1;
LossNow = 0;
} else {
iimPlay('CODE:TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:BetSizeInput EXTRACT=TXT');
LossNow = LossNow + parseFloat(iimGetLastExtract());
};
};
};
};
};
$('#clear').toggleClass('active', !!this.value);
$('#clear').addClass('active');
$('#clear')
вынес в переменную - зачем каждый раз дергать с DOM. <div data-for-tree="some[closure][1]">child 1</div>
<div data-for-tree="some[closure][2]">child 2</div>
$(':regex(data-for-tree,some\\[closure\\]\\[\\d\\])')
onMouseMoveHandler = (e) => {
if (this.state.active) {
....
для каждой переменной (var)
– создаётся свойство VO с именем переменной, и значением undefined; если в VO уже присутствовало свойство с таким именем, оно остаётся нетронутым.
var dateParts = '05/11/2015'.split('/'),
date = new Date(dateParts[2], dateParts[1] - 1, dateParts[0]);
console.log(date.getDay()); // 4
достать
var places = document.querySelectorAll('.place'),
freePlaces = [1, 3];
[].forEach.call(places, function (place) {
freePlaces.indexOf(+place.textContent) > -1 && place.classList.add('free');
});
Formstone.$body = $("body");
$Body.on(Events.click + data.dotGuid, ":not(" + Classes.options + ")", data, closeOptionsHelper);
function groupRows(table) {
var uniqueRows = {},
removedRows = [];
[].forEach.call(table.rows, function (row) {
var key = row.cells[0].textContent,
value = +row.cells[1].textContent.split(' ')[1],
sum;
if (key in uniqueRows) {
sum = uniqueRows[key].value + value;
uniqueRows[key].row.cells[1].textContent = 'Количество ' + sum;
uniqueRows[key].value = sum;
removedRows.push(row);
} else {
uniqueRows[key] = {
row: row,
value: value
};
}
});
[].forEach.call(removedRows, function (row) {
table.tBodies[0].removeChild(row);
});
}
<select data-bind="selectedAttribute: { attr: 'data-price', property: productPrice }">
var viewModel = {
productPrice: ko.observable()
};
ko.bindingHandlers.selectedAttribute = {
init: function(element, valueAccessor) {
var attr = valueAccessor().attr,
property = valueAccessor().property;
function updateModel() {
property(element.options[element.selectedIndex].getAttribute(attr));
}
element.addEventListener('change', updateModel);
updateModel();
}
};
ko.applyBindings(viewModel);
document.getElementById('svg').onload = function() {
var svgDoc = this.contentDocument,
rect = svgDoc.getElementById('rect1');
rect.addEventListener('contextmenu', function(e) {
e.preventDefault();
alert('На меня тычат правой кнопкой мыши!');
});
};