Делаю проэкт галерею на javascript, потерял скобку.
Ошибка расположена в функции arrows. Пишет, Uncaught SyntaxError: Illegal return statement.
function showImage(event){
//ПРОВЕРКА И УДАЛЕНИЕ
//##############
if (document.querySelector(".canDelete")){
document.querySelector(".canDelete").classList.remove("canDelete")
}
if (document.querySelector(".OtherMiniMain")){
document.querySelector(".OtherMiniMain").classList.remove(".OtherMiniMain");}
let pictures=document.querySelector(".pictures");
if (document.querySelector(".selected")){
document.querySelector(".selected").classList.remove("selected");
}
if (document.querySelector(".open")){
document.querySelector(".open").remove()
}
let OtherMains=document.querySelectorAll(".otherMain");
for (item of OtherMains){
item.remove()
}
let eventImage;
if (document.querySelector(".miniUpdate")){
eventImage=document.querySelector(".miniUpdate");
}
else {
eventImage=event.target;
}
//ИНИЦИАЛИЗАЦИЯ
//#############
let heart=document.querySelector(".heart");
if (!eventImage.classList.contains("chosenImg")){
heart.classList.remove("beforeChose")
}
else{
heart.classList.add("beforeChose")
}
let main=document.querySelector("main");
let block=document.querySelector(".show");
let imageDiv=document.querySelector(".ImgAndArrow");
eventImage.classList.add("selected")
block.hidden=false;
let other=document.querySelector(".other")
document.body.style.overflow="hidden";
let image=document.createElement("img");
image.src=eventImage.src;
image.classList.add("open");
imageDiv.append(image);
let OtherMainImage=image.cloneNode();
OtherMainImage.classList.add("otherMain");
OtherMainImage.classList.remove("open");
OtherMainImage.classList.add("OtherMiniMain")
createSublings()
function createSublings(){
createMini(2,"-");
createMini(1,"-");
pictures.append(OtherMainImage)
if (document.querySelector(".chosen").textContent=="Home"){
let items=document.querySelectorAll(".chosenImg");
if (getChosenIndex()==items.length-2){
createMini(1,"+")
}
if (getChosenIndex()<item.length-2){
createMini(1,"+");
createMini(2,"+");
}
function getChosenIndex(){
let col=0;
for (item of items){
if (item.classList.contains("selected")){
return col
}
col++
}
}}
else{
if (getIndex()==main.children.length-2){
createMini(1,"+");
}
if (getIndex()<main.children.length-2){
createMini(1,"+");
createMini(2,"+");
}
}
function checkNoneDiv(){
let col=0;
for (item of document.querySelectorAll(".noneImageDiv")){
col++
}
return col
}
// alert(checkNoneDiv())
function createMini(num,znak){
let coords=OtherMainImage.getBoundingClientRect();
let image=OtherMainImage.cloneNode();
let Children;
if (document.querySelector(".chosen").textContent=="Home"){
// alert("sdf")
Children=main.querySelectorAll(".chosenImg")
}
else{
Children=main.children
}
image.classList.remove("OtherMiniMain");
if (znak=="-"){
if (!Children[getIndex()-num]){
if (checkNoneDiv()>=2){
return
}
appendNoneDiv()
return
}
image.src=Children[getIndex()-num].src;
image.dataset.number=`r${getIndex()-num}`;
OtherMainImage.dataset.number=`r${Number(image.getAttribute("data-number").split("").slice(1).join(""))+num}`
pictures.append(image);
}
if (znak=="+"){
if (!Children[getIndex()+num]){
if (checkNoneDiv()>=2){
return
}
appendNoneDiv()
return
}
image.src=Children[getIndex()+num].src;
image.dataset.number=`r${getIndex()+num}`;
OtherMainImage.dataset.number=`r${Number(image.getAttribute("data-number").split("").slice(1).join(""))-num}`
pictures.append(image);
}
function appendNoneDiv(){
let noneDiv=document.createElement("div");
noneDiv.classList.add("noneImageDiv")
pictures.append(noneDiv)
}
}
// alert(document.querySelector("main").children[0].src);
// image.src=main.children[getIndex()-1].src
// other.append(image);
// let predImage=OtherMainImage.cloneNode();
// predImage.style.left=`${coords.left-coords.width*2-45}px`
}
function getIndex(){
let col=0;
for (item of main.children){
if (item.classList.contains("selected")){
return col;
}
col++
}
}
let miniClicks=document.querySelectorAll(".otherMain");
for (item of miniClicks){
item.addEventListener("click",miniClick)
}
}
function hideShow(event){
document.querySelector(".deleteWindow").hidden=true;
for (item of document.querySelectorAll(".noneImageDiv")){
item.remove()
}
let block=document.querySelector(".show");
block.hidden=true;
document.body.style.overflow="auto";
if (document.querySelector(".miniUpdate")){
document.querySelector(".miniUpdate").classList.remove("miniUpdate")
}
}
function miniClick(event){
document.querySelector(".deleteWindow").hidden=true;
if (document.querySelector(".noneImageDiv")){
for (item of document.querySelectorAll(".noneImageDiv")){
item.remove()
}
}
if (document.querySelector(".miniUpdate")){
document.querySelector(".miniUpdate").classList.remove("miniUpdate")
}
let main=document.querySelector("main");
if (event.target.getAttribute("data-number")==null){
return
}
let classIndex=Number(event.target.getAttribute("data-number").split("").slice(1).join(""));
main.children[classIndex].classList.add("miniUpdate");
showImage()
}
function arrows(event){
let canDelete;
let num=1;
let MainMini=document.querySelector(".OtherMiniMain");
if (!MainMini){
return
}
if (!MainMini.getAttribute("data-number")){
hideShow()
return
}
let classIndex=Number(MainMini.getAttribute("data-number").split("").slice(1).join(""));
if (document.querySelector(".canDelete")){
if (classIndex<=0){
document.querySelector(".canDelete").classList.remove("canDelete")
canDelete=document.querySelector(".arrowRight");
num=0
}
else{
canDelete=document.querySelector(".arrowLeft");
}
}
else{
if (document.querySelector(".canDelete")){
document.querySelector(".canDelete").classList.remove("canDelete")
}
canDelete=event.target;
}
if (document.querySelector(".miniUpdate")){
document.querySelector(".miniUpdate").classList.remove("miniUpdate")
}
if (event){
if (event.key=="ArrowRight"){
document.querySelector(".deleteWindow").hidden=true;
let newIndex=classIndex+1;
if (newIndex>=main.children.length){
return
}
if (document.querySelector(".chosen").textContent=="Home"){
if (!main.children[newIndex].classList.contains("chosenImg")){
return
}}
if (newIndex==1){
document.querySelector(".noneImageDiv").remove();
document.querySelector(".noneImageDiv").remove()
}
if (newIndex==2){
document.querySelector(".noneImageDiv").remove()
}
// if (main.children[newIndex])
main.children[newIndex].classList.add("miniUpdate");
// if (main.children[newIndex].classList.contains(""))
showImage()}
if (event.key=="ArrowLeft"){
document.querySelector(".deleteWindow").hidden=true;
let newIndex=classIndex-1;
if (newIndex<=-1){
return
}
if (document.querySelector(".chosen").textContent=="Home"){
if (!main.children[newIndex].classList.contains("chosenImg")){
return
}}
main.children[newIndex].classList.add("miniUpdate");
showImage()
}
}
if (canDelete.className=="arrowRight"){
let newIndex=classIndex+num;
if (newIndex>=main.children.length){
return
}
if (!main.children[newIndex].classList.contains("chosenImg")){
return
}
if (newIndex==1){
document.querySelector(".noneImageDiv").remove();
document.querySelector(".noneImageDiv").remove()
}
if (newIndex==2){
document.querySelector(".noneImageDiv").remove()
}
}
main.children[newIndex].classList.add("miniUpdate");
showImage()}
//LEFT
if (canDelete.className=="arrowLeft"){
let newIndex=classIndex-1;
// if (newIndex<=-1){
// return
// }
if (document.querySelector(".chosen").textContent=="Home"){
if (!main.children[newIndex].classList.contains("chosenImg")){
return
}}
main.children[newIndex].classList.add("miniUpdate");
showImage()
}
if (document.querySelector(".canDelete")){
document.querySelector(".canDelete").classList.remove("canDelete")
}
function deleteImage(event){
if (!document.querySelector(".selected")){
return
}
if (document.querySelector(".selected").classList.contains("chosenImg")){
document.querySelector(".heart").classList.remove("beforeChose");
}
if (document.querySelector(".canDelete")){
document.querySelector(".canDelete").classList.remove("canDelete")
}
let pictures=document.querySelector(".pictures");
let selected=document.querySelector(".selected");
let deleteWindow=document.querySelector(".deleteWindow");
if (!selected){
hideShow()
return
}
ok=document.querySelector(".deleteOk");
cancel=document.querySelector(".deleteCancel");
if (event.key=="Delete"|| event.target.classList.contains("trash")){
deleteWindow.hidden=false;
ok.addEventListener("click",deleteWindowButttons);
cancel.addEventListener("click",deleteWindowButttons);
document.addEventListener("keydown",deleteWindowButttons)
}
}
function deleteWindowButttons(event){
let pictures=document.querySelector(".pictures");
let selected=document.querySelector(".selected");
let deleteWindow=document.querySelector(".deleteWindow");
if (event.target.classList.contains("deleteOk") || event.key=="Enter"){
selected.remove();
deleteWindow.hidden=true;
pictures.classList.add("canDelete");
arrows()
}
if (event.target.classList.contains("deleteCancel") || event.key=="Escape"){
deleteWindow.hidden=true;
}
}
function showWindowfromImage(event){
if (document.querySelector(".selectedForRight")){
document.querySelector(".selectedForRight").classList.remove("selectedForRight")
}
event.target.classList.add("selectedForRight")
let whiteWindow=document.querySelector(".window");
let deleteW=document.querySelector(".windowDeleteImg");
if (!event.target.parentNode.tagName){
return
}
if (event.target.parentNode.tagName!="MAIN" || event.target.tagName!="IMG"){
whiteWindow.hidden=true;
return
}
// alert(event.target.parentNode.tagName)
whiteWindow.hidden=false;
whiteWindow.style.left=event.pageX+"px";
whiteWindow.style.top=event.pageY+"px";
deleteW.addEventListener("click",deleteOrChosen)
event.preventDefault();
}
function deleteOrChosen(event){
document.querySelector(".selectedForRight").remove()
}
function ShowChosenBlock(event){
let show=document.querySelector(".show")
let main=document.querySelector("main");
let images=main.querySelectorAll("img");
document.querySelector(".deleteWindow").hidden=true;
show.hidden=true;
if (event.target.textContent=="Chosen"){
for (item of images){
if (!item.classList.contains("chosenImg")){
item.hidden=true;
}
}
document.body.style.background="rgba(255, 197, 249, 1)";
event.target.textContent="Home";
return
}
if (event.target.textContent=="Home"){
for (item of images){
item.hidden=false;
}
document.body.style.background="rgba(136, 134, 134, 1)";
event.target.textContent="Chosen";
return
}}
function addToChosen(event){
let selected=document.querySelector(".selected");
if (selected.classList.contains("chosenImg")){
selected.classList.remove("chosenImg")
document.querySelector(".heart").classList.remove("beforeChose");
return
}
selected.classList.add("chosenImg");
document.querySelector(".heart").classList.add("beforeChose");
}
//РАБОТА ПРОГРАММЫ
let heart=document.querySelector(".heart");
heart.addEventListener("click", addToChosen)
let chosen=document.querySelector(".chosen");
chosen.addEventListener("click",ShowChosenBlock);
let bin=document.querySelector(".trash");
bin.addEventListener("click",deleteImage);
document.addEventListener("keydown",deleteImage);
let arrowLeft=document.querySelector(".arrowLeft");
let arrowRight=document.querySelector(".arrowRight");
arrowLeft.addEventListener("click",arrows);
arrowRight.addEventListener("click",arrows);
document.addEventListener("keydown",arrows)
let left=document.querySelector(".left");
left.addEventListener("click",hideShow)
let main=document.querySelector("main");
let images=main.querySelectorAll("img");
document.addEventListener("contextmenu",event=>event.preventDefault())
for (item of images){
item.addEventListener("click",showImage);
// item.addEventListener("contextmenu",showWindowfromImage);
}
let whiteWindow=document.querySelector(".window");
document.addEventListener("contextmenu",showWindowfromImage);
document.addEventListener("click",event=>whiteWindow.hidden=true);
document.addEventListener("scroll",event=>whiteWindow.hidden=true);
window.addEventListener("resize",event=>whiteWindow.hidden=true);
0 / 0 / 1 Регистрация: 04.08.2015 Сообщений: 99 |
|
1 |
|
Оптимальный поиск потеряной скобки10.08.2015, 00:30. Показов 2244. Ответов 12
написал большой кусок кода, запустил компиляцию, нашел все синтаксические ошибки, кроме одной: где-то потеряна скобка «}» все остальные ошибки искались просто — Ctrl+F или по номеру строки с ошибкой, в баг-репорте компилятора какими способами (кроме брут-форса, т.е. не перечитывая весь код) возможно найти её?
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
10.08.2015, 00:30 |
12 |
Заблокирован |
|
10.08.2015, 00:34 |
2 |
Вот поэтому я и люблю делфи. Там бегины. А по поводу вашего кода — думаю никакими.
0 |
0 / 0 / 1 Регистрация: 04.08.2015 Сообщений: 99 |
|
10.08.2015, 00:38 [ТС] |
3 |
в делфи бегин-енды , это те же яйца, только в профиль…
0 |
8724 / 4304 / 958 Регистрация: 15.11.2014 Сообщений: 9,751 |
|
10.08.2015, 00:40 |
4 |
Вот поэтому я и люблю делфи. Там бегины. А по поводу вашего кода — думаю никакими. Не по теме: написал большой кусок кода, запустил компиляцию, нашел все синтаксические ошибки, кроме одной: — Вот поэтому я и люблю с++. Там }. А по поводу вашего кода — думаю никакими.
1 |
алкокодер 157 / 153 / 41 Регистрация: 27.12.2012 Сообщений: 550 |
|
10.08.2015, 00:44 |
5 |
Переписать всё по новой!
0 |
0 / 0 / 1 Регистрация: 04.08.2015 Сообщений: 99 |
|
10.08.2015, 00:45 [ТС] |
6 |
Переписать всё по новой! да тут смотрю сплошь юмористы
0 |
алкокодер 157 / 153 / 41 Регистрация: 27.12.2012 Сообщений: 550 |
|
10.08.2015, 01:03 |
7 |
ТомСойер, покажи что ли код
1 |
Неэпический 17813 / 10585 / 2043 Регистрация: 27.09.2012 Сообщений: 26,625 Записей в блоге: 1 |
|
10.08.2015, 01:07 |
8 |
какими способами (кроме брут-форса, т.е. не перечитывая весь код) возможно найти её? надо было код структурировать нормально, тогда бы не возникло такого. Для опыта можете написать себе велосипед поиска несоответствия скобок, чтобы вручную не просматривать, может потом еще пригодится
1 |
58 / 45 / 11 Регистрация: 16.09.2014 Сообщений: 124 |
|
10.08.2015, 01:18 |
9 |
РешениеВ Visual studio ctrl+k, ctrl+d — это форматирование кода, там по отступам визуально будет понятно где потерялась скобка.
1 |
Модератор 5148 / 2327 / 339 Регистрация: 20.02.2013 Сообщений: 5,718 Записей в блоге: 20 |
|
10.08.2015, 05:26 |
10 |
какими способами (кроме брут-форса, т.е. не перечитывая весь код) возможно найти её?
0 |
0 / 0 / 1 Регистрация: 04.08.2015 Сообщений: 99 |
|
10.08.2015, 08:31 [ТС] |
11 |
В Visual studio ctrl+k, ctrl+d — это форматирование кода, там по отступам визуально будет понятно где потерялась скобка. то что нужно было, спасибо
покажи что ли код какой смысл, если я сам должен учиться искать простые ошибки? задача решена, всем спасибо
0 |
Почетный модератор 5850 / 2861 / 392 Регистрация: 01.11.2011 Сообщений: 6,907 |
|
10.08.2015, 09:28 |
12 |
то что нужно было Впредь указывайте конкретную вашу студию. Ведь для конкретной среды будут и конкретные действия.
1 |
0 / 0 / 0 Регистрация: 10.08.2015 Сообщений: 1 |
|
10.08.2015, 09:33 |
13 |
Используй нормальную IDE, например от JetBrains
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
10.08.2015, 09:33 |
13 |
Здравствуйте уважаемые пользователи форума pawno-crmp.
Этот минуал подойдет тем, у кого в моде есть незакрытая скобка, и если стандартные способы не помогают найти ее. Если стандартными способами найти незакрытую скобку не получается, то Вы попали по адресу.
Итак, начнем.
Сегодня я столкнулся с такой проблемой, как незакрытая скобка. Как известно, если в коде имеется незакрытая скобка, то при компилировании компилятор вылетает не показав ошибку. Я перепробовал стандартные способы как найти незакрытую скобку, но они не подходят, так как у меня в коде (ну наверно не только у меня) есть за комментированные скрипты типа таких:
/*
public test()
{
new blablalbla;
*/
Дело в том, что программы подсчитывающие количество открытых и закрытых скобок считают за комментированные скобки, поэтому программа выдаст совсем не ту строку которую нужно.
Перейдем к делу.
Чтобы найти незакрытую скобку, я использовал это: (не знаю как назвать)
#error abc
Если в коде ввести «это», компилятор выдаст ошибку. Опишу поподробнее.
Например незакрытая скобка находится на строке номер 5612. Если ввести #error abc дальше строки 5612, например 6719, то компилятор так же вылетит не выдав никаких ошибок, а если ввести #error abc до строки 5612 например 3118, то компилятор выдаст ошибку «(3118) : fatal error 111: user error: abc». Думаю теперь вы поняли принцип поиска незакрытой скобки.
Я делал так. С начало ввел #error abc в середину мода, компилятор выдал ошибку «(3118) : fatal error 111: user error: abc». Далее ниже, и еще ниже. Я делал это до тех пор, пока компилятор не вылетел. И наконец-то я нашел незакрытую скобку.
Удачи Вам в поиске незакрытой скобки!
Автор минуала я, DimanJeans!
Потерял скобки, не могу найти.
В задаче кажется потерял скобки, но не уверен, что даже ход решения верный — вроде как написал все необходимое, но в конце ругался на закрытие метода и синтаксическую белеберду.
В какую сторону сейчас смотреть?
package com.javarush.task.pro.task10.task1010;
import java.util.Objects;
/*
Два айфона
*/
public class Iphone {
private String model;
private String color;
private int price;
public Iphone(String model, String color, int price) {
this.model = model;
this.color = color;
this.price = price;
}
@Override
public boolean equals(Object o)
{
if (o == null)
return false;
}
Iphone iphone = (Iphone) o;
{
return this.price == iphone.price;
}
if (color == null)
{
if (iphone.color !=null)
{
return false;
}
}
else
if (!color.equals(iphone.color))
{
return false;
}
if (model == null)
{
if (iphone.model !=null)
{
return false;
}
}
else
if (!model.equals(iphone.model))
{
return false;
}
return true;
}
public static void main(String[] args) {
Iphone iphone1 = new Iphone(«X», «Black», 999);
Iphone iphone2 = new Iphone(«X», «Black», 999);
System.out.println(iphone1.equals(iphone2));
}
}
Этот веб-сайт использует данные cookie, чтобы настроить персонально под вас работу сервиса. Используя веб-сайт, вы даете согласие на применение данных cookie. Больше подробностей — в нашем Пользовательском соглашении.
Если вы пропустили где-то скобку (не закрыли), то pawn выдаст 26 ошибок на функции, которые в моде объявлены.
Если вы поставили лишнюю скобку, pawn вылетит.
Благодаря этому уроку вы сможете найти пропущенную скобку.
1) Скачиваем эту программу. И открываем ее:
2) Кликаем «Browse» и указываем путь до .pwn файла.
3) Нажимаем «Start».
4) После, программа вам выдаст кол-во открытых и закрытых скобок. Эти числа должны совпадать. Если же нет, вы где-то не закрыли, или не открыли скобку. Также, программа выдаст строку, в которой скобка не закрыта / не открыта.
Автор: Evqeniy
Работоспособность данного метода не проверена. В случае обнаружения неисправности, пишите в теме.
На этом все!