const object = {
prop1: 'value1'
};
// https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty
if (object.hasOwnProperty('prop1')) {
// your code here
}
// Тоже самое, что и 1й, но немного отличается своей работой
// https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty#Example_hasOwnProperty_as_a_property
if (Object.prototype.hasOwnProperty.call(object, 'prop1')) {
// your code here
}
if (object.prop1) {
// your code here
}
if (typeof object.prop1 !== 'undefined') {
// your code here
}
if ('prop1' in object) {
// your code here
}
import { mapGetters } from 'vuex'
export default {
name: 'CartInfoBox',
computed: {
...mapGetters([
'totalCount',
'totalPrice'
])
}
}
import { mapGetters } from 'vuex'
export default {
name: 'CartInfoBox',
computed: {
...mapGetters('cart', [
'totalCount',
'totalPrice'
])
}
}
<input onchange="handleChange" type="file" />
<!-- как-то циклом выводи Store.files -->
<span>file 1</span>
<button onclick="(e) => removeFile(0)">remove file</button>
<span>file 2</span>
<button onclick="(e) => removeFile(1)">remove file</button>
const Store = {
files: [], // какое-то хранищие файлов, для примера так
}
// при выборе файлов, мы будем их добавлять
function handleChange(e) {
// если не выбрали файл и нажали отмену, то ничего не делать
if (!e.target.files.length) {
return;
}
// создаем новый массив с нашими файлами
const files = Object.keys(e.target.files).map((i) => e.target.files[i]);
addFiles(files); добавляем файлы в хранилище
// очищаем input, т.к. файл мы сохранили
e.target.value = '';
}
function addFiles(files) {
// добавляем файлы в общую кучу
Store.files = Store.files.concat(files);
}
// удалить файл из хранилища, например по индексу в массиве
function removeFile(index) {
// удаляем файл по индексу
Store.files.splice(index, 1);
}
// если надо послать файлы на сервер, формируем FormData с файлами
// const formData = getFilesFormData(Store.files);
function getFilesFormData(files) {
const formData = new FormData();
files.map((file, index) => {
formData.append(`file${index + 1}`, file);
});
return formData;
}
body {
margin: 0;
overflow: hidden;
}
body > .scroll-box {
position: relative;
left: 0;
right: 0;
height: 100%;
max-height: 100vh;
overflow-y: auto;
}
$modal.on('show', () => $scrollBox.css({ 'pointer-events': 'none' }));
$modal.on('hide', () => $scrollBox.css({ 'pointer-events': 'auto' }));
Потому что оно работает только с одной строкой
this.setState(({ events }) => ({
events: events.map(n => n.id === id ? { ...n, title: newTitle } : n),
}));
element.scrollIntoView({ behavior: 'smooth' })
(function($) {
$.fn.totop = function(options) {
options = $.extend(
{
height : 300, // позиция появления
speed : 1000 // скорость прокрутки наверх
}, options);
return this.each(function() {
button = $(this);
$(window).scroll( function() {
if ( $(window).scrollTop() > options.height ) {
if (!button.attr('data-x')) {
button.fadeIn();
}
} else {
if (!button.attr('data-x')) {
button.fadeOut();
}
}
});
button.click(function(e) {
if ($(this).attr('data-x')) {
var top = parseInt($(this).attr('data-x'));
e.preventDefault();
$('html, body').stop().animate({scrollTop: top}, options.speed, function(){
button.removeAttr('data-x');
});
button.html('<i class="icon-arrow-up"></i>');
return false;
}
var top = $(window).scrollTop();
button.attr('data-x',top);
button.html('<i class="icon-arrow-down"></i>');
e.preventDefault();
$('html, body').stop().animate({scrollTop: "0px"}, options.speed );
return false;
});
$(window).scroll();
})
}
})(jQuery);
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var w = window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;
var h = window.innerHeight
|| document.documentElement.clientHeight
|| document.body.clientHeight;
var x = document.getElementById("demo");
x.innerHTML = "Browser inner window width: " + w + ", height: " + h + ".";
</script>
</body>
</html>
<div class="example">
@yield('content')
</div>
@extends('first')
@section('content')
Hello, World!
@endsection
class Controller
{
public function indexAction()
{
return view('second');
}
}
<div class="example">
Hello, World!
</div>