Скрипт не работает, jQuery
HTML часть:
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .html4strict.geshi_code {font-family:monospace;} .html4strict.geshi_code .imp {font-weight: bold; color: red;} .html4strict.geshi_code .kw2 {color: #000000; font-weight: bold;} .html4strict.geshi_code .kw3 {color: #000066;} .html4strict.geshi_code .es0 {color: #000099; font-weight: bold;} .html4strict.geshi_code .br0 {color: #66cc66;} .html4strict.geshi_code .sy0 {color: #66cc66;} .html4strict.geshi_code .st0 {color: #ff0000;} .html4strict.geshi_code .nu0 {color: #cc66cc;} .html4strict.geshi_code .sc-1 {color: #808080; font-style: italic;} .html4strict.geshi_code .sc0 {color: #00bbdd;} .html4strict.geshi_code .sc1 {color: #ddbb00;} .html4strict.geshi_code .sc2 {color: #009900;} .html4strict.geshi_code span.xtra { display:block; }
jQuery часть:
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .javascript.geshi_code {font-family:monospace;} .javascript.geshi_code .imp {font-weight: bold; color: red;} .javascript.geshi_code .kw1 {color: #000066; font-weight: bold;} .javascript.geshi_code .kw2 {color: #003366; font-weight: bold;} .javascript.geshi_code .kw3 {color: #000066;} .javascript.geshi_code .co1 {color: #006600; font-style: italic;} .javascript.geshi_code .co2 {color: #009966; font-style: italic;} .javascript.geshi_code .coMULTI {color: #006600; font-style: italic;} .javascript.geshi_code .es0 {color: #000099; font-weight: bold;} .javascript.geshi_code .br0 {color: #009900;} .javascript.geshi_code .sy0 {color: #339933;} .javascript.geshi_code .st0 {color: #3366CC;} .javascript.geshi_code .nu0 {color: #CC0000;} .javascript.geshi_code .me1 {color: #660066;} .javascript.geshi_code span.xtra { display:block; }
Написал такой простенький счётчик/таймер, но к сожалению он не хочет работать.
выполняется
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .javascript.geshi_code {font-family:monospace;} .javascript.geshi_code .imp {font-weight: bold; color: red;} .javascript.geshi_code .kw1 {color: #000066; font-weight: bold;} .javascript.geshi_code .kw2 {color: #003366; font-weight: bold;} .javascript.geshi_code .kw3 {color: #000066;} .javascript.geshi_code .co1 {color: #006600; font-style: italic;} .javascript.geshi_code .co2 {color: #009966; font-style: italic;} .javascript.geshi_code .coMULTI {color: #006600; font-style: italic;} .javascript.geshi_code .es0 {color: #000099; font-weight: bold;} .javascript.geshi_code .br0 {color: #009900;} .javascript.geshi_code .sy0 {color: #339933;} .javascript.geshi_code .st0 {color: #3366CC;} .javascript.geshi_code .nu0 {color: #CC0000;} .javascript.geshi_code .me1 {color: #660066;} .javascript.geshi_code span.xtra { display:block; }
А после же
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .javascript.geshi_code {font-family:monospace;} .javascript.geshi_code .imp {font-weight: bold; color: red;} .javascript.geshi_code .kw1 {color: #000066; font-weight: bold;} .javascript.geshi_code .kw2 {color: #003366; font-weight: bold;} .javascript.geshi_code .kw3 {color: #000066;} .javascript.geshi_code .co1 {color: #006600; font-style: italic;} .javascript.geshi_code .co2 {color: #009966; font-style: italic;} .javascript.geshi_code .coMULTI {color: #006600; font-style: italic;} .javascript.geshi_code .es0 {color: #000099; font-weight: bold;} .javascript.geshi_code .br0 {color: #009900;} .javascript.geshi_code .sy0 {color: #339933;} .javascript.geshi_code .st0 {color: #3366CC;} .javascript.geshi_code .nu0 {color: #CC0000;} .javascript.geshi_code .me1 {color: #660066;} .javascript.geshi_code span.xtra { display:block; }
точнее после 1000 ms скрипт перестаёт работать, выходит ошибка
Uncaught ReferenceError: counter is not defined
Не пойму в чём проблема, counter же определил в самом начале и дал ей значение 0.
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .html4strict.geshi_code {font-family:monospace;} .html4strict.geshi_code .imp {font-weight: bold; color: red;} .html4strict.geshi_code .kw2 {color: #000000; font-weight: bold;} .html4strict.geshi_code .kw3 {color: #000066;} .html4strict.geshi_code .es0 {color: #000099; font-weight: bold;} .html4strict.geshi_code .br0 {color: #66cc66;} .html4strict.geshi_code .sy0 {color: #66cc66;} .html4strict.geshi_code .st0 {color: #ff0000;} .html4strict.geshi_code .nu0 {color: #cc66cc;} .html4strict.geshi_code .sc-1 {color: #808080; font-style: italic;} .html4strict.geshi_code .sc0 {color: #00bbdd;} .html4strict.geshi_code .sc1 {color: #ddbb00;} .html4strict.geshi_code .sc2 {color: #009900;} .html4strict.geshi_code span.xtra { display:block; }
<div id="timer">
<p class="h">Elapsed time:</p>
<p class="time"></p>
</div>
<p class="h">Elapsed time:</p>
<p class="time"></p>
</div>
jQuery часть:
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .javascript.geshi_code {font-family:monospace;} .javascript.geshi_code .imp {font-weight: bold; color: red;} .javascript.geshi_code .kw1 {color: #000066; font-weight: bold;} .javascript.geshi_code .kw2 {color: #003366; font-weight: bold;} .javascript.geshi_code .kw3 {color: #000066;} .javascript.geshi_code .co1 {color: #006600; font-style: italic;} .javascript.geshi_code .co2 {color: #009966; font-style: italic;} .javascript.geshi_code .coMULTI {color: #006600; font-style: italic;} .javascript.geshi_code .es0 {color: #000099; font-weight: bold;} .javascript.geshi_code .br0 {color: #009900;} .javascript.geshi_code .sy0 {color: #339933;} .javascript.geshi_code .st0 {color: #3366CC;} .javascript.geshi_code .nu0 {color: #CC0000;} .javascript.geshi_code .me1 {color: #660066;} .javascript.geshi_code span.xtra { display:block; }
$(document).ready(function(){
var t;
var counter = 0;
var isTimerOn = false;
$('#start').click(function(){
startGame();
timerStart();
$(this).attr("disabled","disabled");
});
function countUp(counter){
$('.time').html(counter);
counter++;
t = setTimeout("countUp(counter);" , 1000);
}
function timerStart(){
if(!isTimerOn) {
isTimerOn = true;
countUp(counter);
}
}
});
var t;
var counter = 0;
var isTimerOn = false;
$('#start').click(function(){
startGame();
timerStart();
$(this).attr("disabled","disabled");
});
function countUp(counter){
$('.time').html(counter);
counter++;
t = setTimeout("countUp(counter);" , 1000);
}
function timerStart(){
if(!isTimerOn) {
isTimerOn = true;
countUp(counter);
}
}
});
Написал такой простенький счётчик/таймер, но к сожалению он не хочет работать.
выполняется
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .javascript.geshi_code {font-family:monospace;} .javascript.geshi_code .imp {font-weight: bold; color: red;} .javascript.geshi_code .kw1 {color: #000066; font-weight: bold;} .javascript.geshi_code .kw2 {color: #003366; font-weight: bold;} .javascript.geshi_code .kw3 {color: #000066;} .javascript.geshi_code .co1 {color: #006600; font-style: italic;} .javascript.geshi_code .co2 {color: #009966; font-style: italic;} .javascript.geshi_code .coMULTI {color: #006600; font-style: italic;} .javascript.geshi_code .es0 {color: #000099; font-weight: bold;} .javascript.geshi_code .br0 {color: #009900;} .javascript.geshi_code .sy0 {color: #339933;} .javascript.geshi_code .st0 {color: #3366CC;} .javascript.geshi_code .nu0 {color: #CC0000;} .javascript.geshi_code .me1 {color: #660066;} .javascript.geshi_code span.xtra { display:block; }
$('.time').html(counter);
А после же
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .javascript.geshi_code {font-family:monospace;} .javascript.geshi_code .imp {font-weight: bold; color: red;} .javascript.geshi_code .kw1 {color: #000066; font-weight: bold;} .javascript.geshi_code .kw2 {color: #003366; font-weight: bold;} .javascript.geshi_code .kw3 {color: #000066;} .javascript.geshi_code .co1 {color: #006600; font-style: italic;} .javascript.geshi_code .co2 {color: #009966; font-style: italic;} .javascript.geshi_code .coMULTI {color: #006600; font-style: italic;} .javascript.geshi_code .es0 {color: #000099; font-weight: bold;} .javascript.geshi_code .br0 {color: #009900;} .javascript.geshi_code .sy0 {color: #339933;} .javascript.geshi_code .st0 {color: #3366CC;} .javascript.geshi_code .nu0 {color: #CC0000;} .javascript.geshi_code .me1 {color: #660066;} .javascript.geshi_code span.xtra { display:block; }
t = setTimeout("countUp(counter);" , 1000);
точнее после 1000 ms скрипт перестаёт работать, выходит ошибка
Uncaught ReferenceError: counter is not defined
Не пойму в чём проблема, counter же определил в самом начале и дал ей значение 0.
1 ответов
>"countUp(counter);"
Ну кто ж так делает
t = setTimeout(function(){
countUp(counter);
}, 1000);
>Не пойму в чём проблема, counter же определил в самом начале и дал ей значение 0.
Видимо, выполняется в глобалной зоне видимости, а ругается на аргумент, а не на функцию, потому что сначала пытается вычислить все аргументы для функции.
countUp(counter);
}, 1000);
>Не пойму в чём проблема, counter же определил в самом начале и дал ей значение 0.
Видимо, выполняется в глобалной зоне видимости, а ругается на аргумент, а не на функцию, потому что сначала пытается вычислить все аргументы для функции.
Ну раз уж тут так хорошо помогают,вот ещё проблемка:
HTML:
<div id="diff">
<p class="fleft" >Choose difficulty: </p>
<select name="choice">
<option value="easy" >Easy</option>
<option value="medium">Medium</option>
<option value="hard">Hard</option>
</select>
</div>
jQuery:
<p class="fleft" >Choose difficulty: </p>
<select name="choice">
<option value="easy" >Easy</option>
<option value="medium">Medium</option>
<option value="hard">Hard</option>
</select>
</div>
jQuery:
//Тасование Фишера–Йетса
String.prototype.shuffle = function () {
var a = this.split(""),
n = a.length;
for(var i = n - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
return a.join("");
}
function difficultyChoice(r1,r2){
if($('select[name="choice"] > option[value="easy"]')){
if((r1.length >= 1 ) && (r1.length < 5)){
r2 = r1;
}
}
else if($('select[name="choice"] > option[value="medium"]')){
if((r1.length >= 5 ) && (r1.length < 8)){
r2 = r1;
}
}
else if($('select[name="choice"] > option[value="hard"]')){
if((r1.length >= 8 ) && (r1.length <= 30)){
r2 = r1;
}
}
}
function displayLetters(){
var rand1 = GetRandomWord(words);
var rand2;
// console.log(rand1);
difficultyChoice(rand1,rand2);
var scrambleChar = rand2.shuffle();
До добавления ф-ии difficultyChoice(r1,r2);
метод shuffle() прекрасно работал, сейчас же выдаёт ошибку
Uncaught TypeError: Cannot call method 'shuffle' of undefined
Может кто-нибудь поймёт в чём тут дело.
Заранее благодарю всех за внимание и помощь.
String.prototype.shuffle = function () {
var a = this.split(""),
n = a.length;
for(var i = n - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
return a.join("");
}
function difficultyChoice(r1,r2){
if($('select[name="choice"] > option[value="easy"]')){
if((r1.length >= 1 ) && (r1.length < 5)){
r2 = r1;
}
}
else if($('select[name="choice"] > option[value="medium"]')){
if((r1.length >= 5 ) && (r1.length < 8)){
r2 = r1;
}
}
else if($('select[name="choice"] > option[value="hard"]')){
if((r1.length >= 8 ) && (r1.length <= 30)){
r2 = r1;
}
}
}
function displayLetters(){
var rand1 = GetRandomWord(words);
var rand2;
// console.log(rand1);
difficultyChoice(rand1,rand2);
var scrambleChar = rand2.shuffle();
До добавления ф-ии difficultyChoice(r1,r2);
метод shuffle() прекрасно работал, сейчас же выдаёт ошибку
Uncaught TypeError: Cannot call method 'shuffle' of undefined
Может кто-нибудь поймёт в чём тут дело.
Заранее благодарю всех за внимание и помощь.