Size: a a a

JavaScript — русскоговорящее сообщество

2020 October 14

a

allpeg in JavaScript — русскоговорящее сообщество
Yuri Kalnin
а как его перехватить, что то не понятно
сложно его перехватить) сделать свой addEventListener, и заменить исходный им.

кстати можно без этого оторвать все события, просто клонировав элемент
https://stackoverflow.com/a/9251864

var old_element = document.getElementById("btn");
var new_element = old_element.cloneNode(true);
old_element.parentNode.replaceChild(new_element, old_element);
^ также удалит все события с дочерних элементов
источник

M

Mихаил in JavaScript — русскоговорящее сообщество
Подскажите пожалуйста начинающему. Есть некий файл client.js У него следующая структура
require=(function(){...})()(Object,Object,Array);
Там где точки там много кода, там где Object и Array там структуры данных.
Если бы последней пары скобок с данными не было бы, то понятно, но в таком случае что происходит?  Передача данных в функцию которая получится после выполнения функции в первых 2-х группах скобок? Хрень какая то , никак не могу сообразить
источник

YK

Yuri Kalnin in JavaScript — русскоговорящее сообщество
allpeg
сложно его перехватить) сделать свой addEventListener, и заменить исходный им.

кстати можно без этого оторвать все события, просто клонировав элемент
https://stackoverflow.com/a/9251864

var old_element = document.getElementById("btn");
var new_element = old_element.cloneNode(true);
old_element.parentNode.replaceChild(new_element, old_element);
^ также удалит все события с дочерних элементов
жеско. т.е jquery off может снять только события jquery? верно понял?
источник

a

allpeg in JavaScript — русскоговорящее сообщество
Mихаил
Подскажите пожалуйста начинающему. Есть некий файл client.js У него следующая структура
require=(function(){...})()(Object,Object,Array);
Там где точки там много кода, там где Object и Array там структуры данных.
Если бы последней пары скобок с данными не было бы, то понятно, но в таком случае что происходит?  Передача данных в функцию которая получится после выполнения функции в первых 2-х группах скобок? Хрень какая то , никак не могу сообразить
это IIFE, т.е. анонимная функция сразу же запускающаяся

> Если бы последней пары скобок с данными не было бы
это передача переменных в функцию
источник

a

allpeg in JavaScript — русскоговорящее сообщество
require=(function(){
   // где-то тут должен быть такой код:
   return function(a,b,c){};
})()(Object,Object,Array);
источник

a

allpeg in JavaScript — русскоговорящее сообщество
require=(function(){
   // код
})()(Object,Object,Array);
аналогично коду
function someCoolName(){
   // код
};
const someCoolName2 = someCoolName();
someCoolName2(Object,Object,Array);
источник

a

allpeg in JavaScript — русскоговорящее сообщество
Если бы require была просто функцией, этот код бы выполнялся КАЖДЫЙ раз при вызове require()
источник

a

allpeg in JavaScript — русскоговорящее сообщество
а так он позволяет скрыть вообще всё внутри области видимости
источник

a

allpeg in JavaScript — русскоговорящее сообщество
вот ещё похожий пример
var someFunction = (function(){
   var counter = 0;
   return function(n){
       counter += n;
       return counter;
   };
})();
someFunction(3) // 3
someFunction(3) // 6
someFunction(1) // 7
источник

PP

Pasha Pavlenko in JavaScript — русскоговорящее сообщество
Переслано от Pasha Pavlenko
<form>
 <p>Как меня зовут?<br>
   <label>
     <input type="radio" name="myname" value="Гоша">
     Гоша</label>
   <br>
   <label>
     <input type="radio" name="myname" value="Олег">
     Олег</label>
   <br>
   <label>
     <input type="radio" name="myname" value="Ваня">
     Ваня</label>
   <br>
   <label>
     <input type="radio" name="myname" value="Забыл">
     Забыл</label>
 </p>
 <label for="street">Самая длинная улица в городе?</label><br>
 <select name="street" id="select">
   <option value="0"></option>
   <option value="Алапаевец">Алапаевец</option>
   <option value="Московская">Московская</option>
 </select>
 <p>Осадки это:<br>
   <label>
     <input type="checkbox" name="testGeorge" value="Дождь">
     Дождь</label>
   <br>
   <label>
     <input type="checkbox" name="testGeorge" value="Снег">
     Снег</label>
   <br>
   <label>
     <input type="checkbox" name="testGeorge" value="Кирпич">
     Кирпич</label>
   <br>
 </p>
 <p>
   <input type="button" id="calc" value="Подсчитать результаты">
   <input type="reset" value="Сброс">
 </p>
   Итого баллов: <input type="text" name="result" readonly>
</form>
<script type="text/javascript">
calc.onclick = function(){
   var myform = this.form,
       chbx = myform['testGeorge'],
       sum = 0;
   for(var i = 0; i < chbx.length; i++){
       if(chbx[i].checked && (chbx[i].value == 'Дождь' && chbx[i].value == 'Снег'))
           sum++;
   }
   if(myform.myname.value == 'Ваня') sum++;
   if(myform.street.value == 'Московская') sum++;
   
   myform.result.value = sum;
};  
</script>
Как сделать, чтобы тесты можно было делать по очереди с каждой новой отрытой страницей?
источник

M

Mихаил in JavaScript — русскоговорящее сообщество
allpeg
require=(function(){
   // где-то тут должен быть такой код:
   return function(a,b,c){};
})()(Object,Object,Array);
require=(function(){
function r(e,n,t){
   ...
}
return r
}
Вот так, если я правильно понимаю, то это равнозначно
источник

ب

بلال ابن اجاد... in JavaScript — русскоговорящее сообщество
Pasha Pavlenko
Переслано от Pasha Pavlenko
<form>
 <p>Как меня зовут?<br>
   <label>
     <input type="radio" name="myname" value="Гоша">
     Гоша</label>
   <br>
   <label>
     <input type="radio" name="myname" value="Олег">
     Олег</label>
   <br>
   <label>
     <input type="radio" name="myname" value="Ваня">
     Ваня</label>
   <br>
   <label>
     <input type="radio" name="myname" value="Забыл">
     Забыл</label>
 </p>
 <label for="street">Самая длинная улица в городе?</label><br>
 <select name="street" id="select">
   <option value="0"></option>
   <option value="Алапаевец">Алапаевец</option>
   <option value="Московская">Московская</option>
 </select>
 <p>Осадки это:<br>
   <label>
     <input type="checkbox" name="testGeorge" value="Дождь">
     Дождь</label>
   <br>
   <label>
     <input type="checkbox" name="testGeorge" value="Снег">
     Снег</label>
   <br>
   <label>
     <input type="checkbox" name="testGeorge" value="Кирпич">
     Кирпич</label>
   <br>
 </p>
 <p>
   <input type="button" id="calc" value="Подсчитать результаты">
   <input type="reset" value="Сброс">
 </p>
   Итого баллов: <input type="text" name="result" readonly>
</form>
<script type="text/javascript">
calc.onclick = function(){
   var myform = this.form,
       chbx = myform['testGeorge'],
       sum = 0;
   for(var i = 0; i < chbx.length; i++){
       if(chbx[i].checked && (chbx[i].value == 'Дождь' && chbx[i].value == 'Снег'))
           sum++;
   }
   if(myform.myname.value == 'Ваня') sum++;
   if(myform.street.value == 'Московская') sum++;
   
   myform.result.value = sum;
};  
</script>
Как сделать, чтобы тесты можно было делать по очереди с каждой новой отрытой страницей?
Итерируешь с помощью for и на индекс массива подставляешь число с math.random если хочешь вывести рандомные тесты и создаёшь кнопку которые переменяет индекс то есть в нажатии math.random обновляется и ответы чекбокс не вставляешь именно в хтмл а с помощью querySelector создаёшь их . Понятно
источник

PP

Pasha Pavlenko in JavaScript — русскоговорящее сообщество
بلال ابن اجاد
Итерируешь с помощью for и на индекс массива подставляешь число с math.random если хочешь вывести рандомные тесты и создаёшь кнопку которые переменяет индекс то есть в нажатии math.random обновляется и ответы чекбокс не вставляешь именно в хтмл а с помощью querySelector создаёшь их . Понятно
нет)
источник

ب

بلال ابن اجاد... in JavaScript — русскоговорящее сообщество
Тебе код подсказать
источник

PP

Pasha Pavlenko in JavaScript — русскоговорящее сообщество
بلال ابن اجاد
Тебе код подсказать
агась
источник

M

Mихаил in JavaScript — русскоговорящее сообщество
allpeg
require=(function(){
   // код
})()(Object,Object,Array);
аналогично коду
function someCoolName(){
   // код
};
const someCoolName2 = someCoolName();
someCoolName2(Object,Object,Array);
Ну я как то так и предполагал, но уж очень мудрено. Зачем делать вот это const someCoolName2 = someCoolName();
Какой смысл в этом? Почему сразу не передать параметры в первый вызов? Зачем эти приколы?
источник

ب

بلال ابن اجاد... in JavaScript — русскоговорящее сообщество
window.addEventListener('load', () => {
   document.querySelector(".outer").style.display = 'none';
   document.querySelector(".start").addEventListener("click", startGame)
})








const startGame = () => {
   document.querySelector(".menu").style.display = 'none';
   document.querySelector(".outer").style.display = 'flex';
   answers_holder = document.querySelector(".answers-holder")
   submit = document.querySelector(".submit");
   indication = document.querySelector(".indication");
   correct = 0;
   answers = document.querySelectorAll(".answer");
   breadth = 100;
   submit.style.pointerEvents = 'all';
   submit.style.background = '#7cb342';
   submit.style.color = "#fff";
   const countdown = () => {
       indication.style.width = ${breadth}%
       breadth-=4;
       if (breadth < 0){
           clearInterval(qtimer);
           timeout();
       }
   }


   const timeout = () => {
       submitAnswer(false);
       Swal.fire({
         icon: 'error',
         title: "Time's up",
         text: 'You should think faster ;-)'

       })

   }
   submit.addEventListener('click', () => {
       submitAnswer(true)
   })
   const submitAnswer = (byUser) => {
       if (byUser){        

           if (submit.innerText == "SUBMIT"){
               let allanswers = document.querySelectorAll(".answer");
               
               allanswers.forEach((element, index) => {
                   if(element.classList.contains("checked") && (element.classList.contains("correct"))){
                       element.style.background = '#8bb44d';
                       
                       correct++;
                       
                       clearInterval(qtimer);
                       element.addEventListener("mouseover", function() {
                       element.style.backgroundColor = "#7ba45d";
                       });
                       
                       element.addEventListener("mouseout", function() {
                       element.style.backgroundColor = "#8bb44d";
                       });
                       submit.innerText = "NEXT";
                   } else if ((element.classList.contains("checked")) && !(element.classList.contains("correct"))){
                       element.style.background = '#e60000'
                       clearInterval(qtimer);
                       element.addEventListener("mouseover", function() {
                       element.style.backgroundColor = "#b30000";
                       });
                       
                       element.addEventListener("mouseout", function() {
                       element.style.backgroundColor = "#e60000";
                       });

                       allanswers.forEach((element, index) => {
                           if((element.classList.contains("correct"))){
                               element.style.background = '#8bb44d'
                               element.addEventListener("mouseover", function() {
                               element.style.backgroundColor = "#7ba45d";
                               });
                               
                               element.addEventListener("mouseout", function() {
                               element.style.backgroundColor = "#8bb44d";
                               });
                               submit.innerText = "Next";
                           }
                       })
                   }

           })} else {
                   questionNumber++;
                   showQuestion();
                   submit.innerText = "Submit";    
               }
           }
       if (!byUser){
           if (submit.innerText == "SUBMIT"){
               let allanswers = document.querySelectorAll(".answer");
               allanswers.forEach((element, index) => {
                   if((element.classList.contains("correct"))){
                       element.style.
источник

ب

بلال ابن اجاد... in JavaScript — русскоговорящее сообщество
background = '#1f7a1f'
                       element.addEventListener("mouseover", function() {
                       element.style.backgroundColor = "#0f6a0f";
                       })    
                       element.addEventListener("mouseout", function() {
                       element.style.backgroundColor = "#1f7a1f";
                       })
                       submit.innerText = "Next";
                   }  
               })
           }  
       }
   }

       
       




   const questions = [
   {

       question:'When did Soviet Union collape?',
       answers:[
           {text: 'In 1995', correct: false},
           {text: 'In 1991', correct: true},
           {text: 'In 1900', correct: false},
           {text: 'In 1999', correct: false}

       ]
   },
   {
       question:'Which country has the largest population?',
       answers:[
           {text: 'India', correct: false},
           {text: 'Russia', correct: false},
           {text: 'Canada', correct: false},
           {text: 'China', correct: true}

       ]
   },
   {
       question:'What is the capital of Romania?',
       answers:[
           {text: 'Bucharest', correct: true},
           {text: 'Saipan', correct: false},
           {text: 'Khartoum', correct: false},
           {text: 'Tiraspol', correct: false}

       ]
   },
   {
       question:'Which is the only continent that covers four hemispheres?',
       answers:[
           {text: 'North America', correct: false},
           {text: 'South America', correct: false},
           {text: 'Africa', correct: true},
           {text: 'Australlia', correct: false}

       ]
   },
   {
       question:'Which of these countries is in European Union?',
       answers:[
           {text: 'Lithuania', correct: true},
           {text: 'Georgia', correct: false},
           {text: 'Serbia', correct: false},
           {text: 'Montenegro', correct: false}

       ]
   },
   {
       question:'What language is spoken in Austria?',
       answers:[
           {text: 'Austrian', correct: false},
           {text: 'French', correct: false},
           {text: 'German', correct: true},
           {text: 'Australlian', correct: false}

       ]
   },
   {
       question:'What is the height of Everest?',
       answers:[
           {text: '5,924 m', correct: false},
           {text: '2,754 m', correct: false},
           {text: '8,848 m', correct: true},
           {text: '2,061 m', correct: false}

       ]
   },
   {
       question:'What is the capital of Czechia?',
       answers:[
           {text: 'Brno', correct: false},
           {text: 'Bratislava', correct: false},
           {text: 'Leipzig', correct: false},
           {text: 'Prague', correct: true}

       ]
   },
   {
       question:'What is the capital of Ukraine?',
       answers:[
           {text: 'Odessa', correct: false},
           {text: 'Kiev', correct: true},
           {text: 'Kharkiv', correct: false},
           {text: 'Minsk', correct: false}

       ]
   },
   {
       question:'What letter does not appear in a US state?',
       answers:[
           {text: 'W', correct: false},
           {text: 'X', correct: false},
           {text: 'G', correct: false},
           {text: 'Q', correct: true}

       ]
   },
   {
       question:'What is the population of Great Britian?',
       answers:[
           {text: '66 million', correct: true},
           {text: '45 million', correct: false},
           {text: '94 million', correct: false},
           {text: '56 million', correct: false}

       ]
   },
   {
       question:'What is the second largest city in India? ',
       answers:[
           {text: 'Delhi', correct: true},
           {text: 'Bengaluru', correct: false},
           {text: 'Visakhapatnam', correct: false},
           {text: 'Sanganak', correct
источник

ب

بلال ابن اجاد... in JavaScript — русскоговорящее сообщество
: false}

       ]
   },
   {
       question:'What is the smallest country in the world?',
       answers:[
           {text: 'Liechtenstein', correct: false},
           {text: 'Vatican City', correct: true},
           {text: 'Macedonia', correct: false},
           {text: 'Monaco', correct: false}

       ]
   },
   {
       question:'What is the capital of Georgia?',
       answers:[
           {text: 'Tbilisi', correct: true},
           {text: 'Batumi', correct: false},
           {text: 'Yerevan', correct: false},
           {text: 'Baku', correct: false}

       ]
   },
   {
       question:'What is the capital of Nigeria',
       answers:[
           {text: 'Lagos', correct: false},
           {text: 'Abuja', correct: true},
           {text: 'Cairo', correct: false},
           {text: 'Monaco', correct: false}

       ]
   },
   {
       question:'Which countries have the most languages?',
       answers:[
           {text: 'Papua New Guinea', correct: true},
           {text: 'Indonesia ', correct: false},
           {text: 'Nigeria', correct: false},
           {text: 'India', correct: false}

       ]
   },
   {
       question:'What country has the most amount of islands?',
       answers:[
           {text: 'Canada', correct: false},
           {text: 'Indonesia', correct: false},
           {text: 'Finland', correct: false},
           {text: 'Sweden', correct: true}

       ]
   },
   {
       question:'Which country is not English-speaking?',
       answers:[
           {text: 'South Africa', correct: false},
           {text: 'Indonesia', correct: true},
           {text: 'Grenada', correct: false},
           {text: 'Antigua and Barbuda', correct: false}

       ]
   },
   {
       question:'What country has the most amount of gold?',
       answers:[
           {text: 'Japan', correct: false},
           {text: 'China', correct: false},
           {text: 'USA', correct: true},
           {text: 'Canada', correct: false}

       ]
   },
   {
       question:'What country has the most farmland?',
       answers:[
           {text: 'India', correct: true},
           {text: 'USA', correct: false},
           {text: 'Turkmenistan', correct: false},
           {text: 'Georgia', correct: false}

       ]
   },
   {
       question:'What country of this list has a blue and white flag?',
       answers:[
           {text: 'Ukraine', correct: false},
           {text: 'Belarus', correct: false},
           {text: 'Israel', correct: true},
           {text: 'Germany', correct: false}

       ]
   },
   {
       question:'What country has the longest coastline?',
       answers:[
           {text: 'Canada', correct: true},
           {text: 'Indonesia', correct: false},
           {text: 'Greenland', correct: false},
           {text: 'Norway ', correct: false}

       ]
   },
   {
       question:'What country has the most time zones?',
       answers:[
           {text: 'Australia', correct: false},
           {text: 'USA', correct: false},
           {text: 'Russia', correct: false},
           {text: 'France', correct: true}

       ]
   },
   {
       question:'What is the capital of Uruguay?',
       answers:[
           {text: 'Montevideo', correct: true},
           {text: 'Monteaudio', correct: false},
           {text: 'Montenegro', correct: false},
           {text: 'Monteimage', correct: false}

       ]
   },
   {
       question:'What is the capital of Syria?',
       answers:[
           {text: 'Nuuk', correct: false},
           {text: 'Lima', correct: false},
           {text: 'Nouakchott', correct: false},
           {text: 'Damascus', correct: true}

       ]
   },
   {
       question:'What is the capital of Greenland?',
       answers:[
           {text: 'Nuuk', correct: true},
           {text: 'Nuke', correct: false},
источник

ب

بلال ابن اجاد... in JavaScript — русскоговорящее сообщество
}
           
           answers_holder.appendChild(button);
           let allanswers = document.querySelectorAll(".answer");


           allanswers.forEach((element, index) => {
               element.addEventListener("click", () => {
               
               allanswers.forEach((element, index) => {
                   element.classList.remove("checked");
               })
               element.classList.add("checked");
               })
           });
               
               
       });
   }
}
   showQuestion();
}
источник