Ответы пользователя по тегу JavaScript
  • Почему при рендеринге скролл меняется?

    @rusline18 Автор вопроса
    Все было оказывается в ленивой сжатие картинок
    Ответ написан
    Комментировать
  • Почему при выборе элемента select2 не закрывается?

    @rusline18 Автор вопроса
    Все дело было в событие change
    $('#modal').modal('show')
    	.change($('#modalContent').html('<div style="display:flex;justify-content: center;margin: 60px 0;"><img src="/images/loader/35.gif"></div>'))
    		.find('#modalContent')
    		.load($(this).attr('href'))


    $('#modal').on('show.bs.modal', function(e) {
    	    $('#modalContent').html('<div style="display:flex;justify-content: center;margin: 60px 0;"><img src="/images/loader/35.gif"></div>');
    	})

    я поменял на этот код
    Ответ написан
    Комментировать
  • Как можно поставить обработчик событие на клик у сформированного js html?

    @rusline18 Автор вопроса
    class FileUpload {
        public input: any = document.getElementById('upload-input');
     ....
        handleFileSelect(event) {
            const files = event.target.files;
            for(let i = 0; i < files.length; i++) {
                const file = files[i];
                let type = file.type;
                Store.files.push(file);
                const fileType: FileType = FileUpload.determineFileType(type);
                let count: number = Store.files.length - 1;
                if(fileType.type === 'image') {
                    const reader = new FileReader();
                    reader.onload = (e: any) => {
                        let div: any = document.createElement('div');
                        div.setAttribute('class', 'preview-file');
                        div.innerHTML = [`<i class="material-icons remove-file" id="${count}">close</i>
    <img class="preview" title="${file.name}" src="${e.target.result}" width="100px" height="100px"/>
    <div>${file.name}</div>`].join('');
                        document.getElementById('preview-content').insertBefore(div, null);
                        FileUpload.removeFile(count);
                    };
                    reader.readAsDataURL(files[i]);
                } else {
                    let div = document.createElement('div');
                    div.setAttribute('class', 'preview-file');
                    div.innerHTML = [`<i class="material-icons remove-file" id="${count}">close</i>
    <img class="preview" title="${file.name}" src="${fileType.icon}" width="100px"/>
    <div>${file.name}</div>`].join('');
                    document.getElementById('preview-content').insertBefore(div, null);
                    FileUpload.removeFile(count);
                }
            }
        }
        static removeFile(count): void {
            const removeButton: any = document.getElementById(`${count}`);
            removeButton.onclick = () => {
                console.log("hello");
            }
        }
    }
    
    new FileUpload();
    Ответ написан
    Комментировать
  • Как менять нумерацию блоков?

    Получаешь id на кликнутого элемента. Если нажали наверх, сделай обработчик, что минусовала id. При этом если нажали наверх, то ты передаешь допустим предыдущий элемент через .prev() и плюсуешь id. Потом делаешь перемещение элемента, не вдавался как правильно делать перемещение, давно такими штуками занимался на jquery https://ruseller.com/lessons.php?id=673. Вот ссылка.
    И все. Аналогичном образом делаешь и с кнопкой вверх, только там используй next() функцию. Тебе еще нужно будет делать проверку, допустим если при нажатие предыдущего элемента нет, то не перемещать, но лучше сделать заранее скрытие кнопки. Примерно такая структура
    Ответ написан
    Комментировать
  • Почему у меня не подключается собственный плагин?

    @rusline18 Автор вопроса
    Ошибка в синтаксисе, jQuery надо сделать а не JQuery
    Ответ написан
    Комментировать
  • Сколько можно сделать модальных окон?

    Сделай подкгрузку ajax
    там примерно будет так
    $(#id).modal('show').find('$idModal').load('#href')

    Точно не помню как там пишется правильно, но примеру в этом русле двигайся, соответственно при нажатие будет ссылать на одно модальное окно только load подгружает контент. Ну и соотвтетсвенно href ты можешь любыми способами сделать
    хоть примерно так
    ;$('#button').click(functuion(){
    $(this).attr(href);// Или примерно так если укажешь data-href $(this).data("href")
    })
    Ответ написан
    Комментировать
  • Как сделать так чтобы класс не пропадал при выборе select?

    @rusline18 Автор вопроса
    $('#select-branch').change(function () {
            let value = $(this).val();
            console.log(value);
            if ($(this).val() !== null){
                $.ajax({
                    type: 'get',
                    url: `${window.location.origin}/branch/rooms/${value}`,
                    beforeSend: function () {
                        $('.select-room').css('display', 'block').html(`<option value="" disabled selected>Загрузка</option>`)
                    }
                })
                    .done(res => {
                        console.log(res);
                        let room = res.map(room => {
                            return `<option value="${room.id}">${room.name}</option>`
                        });
                        $('.select-room').css('display', 'block').html(`<option value="" disabled selected>Выберите комнату</option>${room}`);
                    })
                    .fail(err => console.error(err.responseJSON.message));
            }
        })
    Ответ написан
    Комментировать