computed: {
disabled() {
return !this.selected.length;
},
},
<v-btn
:disabled="disabled"
...
RewriteEngine On
# Директива включает редиректы.
RewriteBase /
# Без директивы (.*) = /$1 будет /var/wwww/site/$1 с ней = /$1
############################################################################
#### Убираем index.php, если он есть в конце URL ####
############################################################################
RewriteCond %{REQUEST_METHOD} =GET
#Выявляем GET запрос в URL (не POST)
RewriteCond %{REQUEST_URI} ^(.*)/index\.php$
#URL cодержит index.php в конце.
RewriteRule ^(.*)$ %1/ [R=301,L]
#Удалить index.php из URL.
<div class="selector">
<div class="selector__header">
<span>Выберите</span>
<span class="arrow"></span>
</div>
<div class="selector__list" style="display:none;"></div>
</div>
var someObj = {a:1,b:2};
var xhr = new XMLHttpRequest();
xhr.open('POST', 'scratch.php');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send('param=' + JSON.stringify(someObj));
xhr.onreadystatechange = function()
{
if (this.readyState == 4)
{
if (this.status == 200)
{
console.log(xhr.responseText);
}
else
{
console.log('ajax error');
}
}
};
$param = json_decode($_REQUEST["param"]);
$result = "Результат: a = ".$param->a."; b = ".$param->b;
die($result);
const walk = (el, level = 0) =>
[...el.children].reduce((p, c) => {
c = walk(c, level + 1);
return p.level > c.level ? p : c;
}, { el, level });
const getLastDeepestElement = root => walk(root).el;
const getDeepestLastElement = el =>
el.lastElementChild
? getDeepestLastElement(el.lastElementChild)
: el;
// или, без рекурсии
const getDeepestLastElement = el => Array
.from(el.querySelectorAll('*'))
.pop() || el;
position: absolute
, position: relative
и z-index
. Их бояться не нужно, просто нужно грамотно использовать в тандеме с теми элементами, что в потоке вёрстки. Хотя это может выглядеть как атака cross-site scripting, результат безопасный. HTML5 указывает на тег <script> вставленный через InnerHTM должен не выполнится.name = "<script>alert('I am John in an annoying alert!')</script>"; el.innerHTML = name; // harmless in this case
var MyAPI = {
css: function(key, val){
if (val === undefined)
return this[0].style[key];
for (var i = 0; i < this.length; i++) {
this[i].style[key] = val;
}
return this;
},
hide: function() {
return this.css("display", "none");
},
show: function() {
if (this.css("display") == "none")
return this.css("display", "block");
return this.css("display", "");
}
}
function _el(selector) {
var collection = document.querySelectorAll(selector),
wrapped = [].slice.call(collection);
for (var method in MyAPI) {
wrapped[method] = MyAPI[method];
}
return wrapped;
}
_el("#mydiv").css("border", "1px solid black");