我有這樣的單擊事件
$('.next-question').click(function() {
$('td').removeClass('highlight-problem');
var r = rndWord;
while (r == rndWord) {
rndWord = Math.floor(Math.random() * (listOfWords.length));
}
$('td[data-word="' + listOfWords[rndWord].name + '"]').addClass('highlight-problem');
$('td[data-word=' + word + ']').removeClass('wrong-letter').removeClass('wrong-word').removeClass('right-letter');
var spellSpace = $('td[data-word=' + listOfWords[rndWord].name + ']').hasClass('right-word');
if (spellSpace) {
$('.next-question').trigger('click');
} else {
$("#hintSound").attr('src', listOfWords[rndWord].audio);
hintSound.play();
$("#hintPic").attr('src', listOfWords[rndWord].pic);
$('#hintPic').show();
$('#hintPicTitle').attr('title', listOfWords[rndWord].hint);
$('#hintPicTitle').show();
}
});
在調試中它說too much recursion
這意味着它是在某種無限循環的控制檯在此刻。我認爲這是因爲if
聲明中的trigger("click")
事件,因爲我在網上看到類似的東西。
基本上,我想說,如果給定的詞有類right-word
然後繼續前進(因此觸發),否則......
有另一種方式來寫它不會崩潰?
這裏是一個小提琴:http://jsfiddle.net/Dxxmh/112/
說明:點擊右側的字母拼寫在網格中的高亮區域(的圖像,以幫助你拼寫的話是不可用的小提琴,所以你必須拼他們使用控制檯,通過查找TD的)
你是什麼意思的「繼續前進」?你是否試圖過濾其他地方定義的動作? –
你的目標是什麼?你對'觸發'是正確的 - 這是可以引起遞歸的地方。並且你必須有一些機制來停止遞歸(去其他方式轉到else分支或停止處理程序exectuion)。但很難說如何正確地停止。 –
繼續循環,直到找到沒有該類的類爲止@dystroy –