2012-07-31 2 views
0

내 "#picknext"기능은 사용자의 철자로 다음 단어를 선택합니다. 현재 행에서 동일한 행을 두 번 선택하는 것과는 별개로 작업을 수행합니다.다음 선택 기능

어떻게 방지 할 수 있습니까?

$('#pickNext').mousedown(function() { 
    // remove the class from all td's 
    $('td').removeClass('spellword'); 
    // pick a random word 
    rndWord = Math.floor(Math.random() * (listOfWords.length)); 

    // apply class to all cells containing a letter from that word 
    $('td[data-word="' + listOfWords[rndWord].name + '"]').addClass('spellword'); 
}); 

HTML ...

<ul style="display:none;" id="wordlist"> 
    <li data-word="mum" data-audio="http://www.wav-sounds.com/cartoon/daffyduck1.wav" data-pic="http://www.clker.com/cliparts/5/e/7/f/1195445022768793934Gerald_G_Lady_Face_Cartoon_1.svg.med.png"></li> 
    <li data-word="cat" data-audio="http://www.wav-sounds.com/cartoon/porkypig1.wav" data-pic="http://www.clker.com/cliparts/c/9/9/5/119543969236915703Gerald_G_Cartoon_Cat_Face.svg.med.png"></li> 
    <li data-word="dog" data-audio="http://www.wav-sounds.com/cartoon/porkypig1.wav" data-pic="http://www.clker.com/cliparts/e/9/4/1/1195440435939167766Gerald_G_Dog_Face_Cartoon_-_World_Label_1.svg.med.png"></li> 
    <li data-word="bug" data-audio="http://www.wav-sounds.com/cartoon/porkypig1.wav" data-pic="http://www.clker.com/cliparts/4/b/4/2/1216180545881311858laurent_scarabe.svg.med.png"></li> 
    <li data-word="rat" data-audio="http://www.wav-sounds.com/cartoon/daffyduck1.wav" data-pic="http://www.clker.com/cliparts/C/j/X/e/k/D/mouse-md.png"></li> 
    <li data-word="dad" data-audio="http://www.wav-sounds.com/cartoon/daffyduck1.wav" data-pic="http://www.clker.com/cliparts/H/I/n/C/p/Z/bald-man-face-with-a-mustache-md.png"></li> 
당신은, 당신의 이벤트 리스너의 범위 이외의 곳 중 상위 범위를 rndWord 변수를 저장하거나 '(this.data를 사용할 필요가

+0

listOfWords 란 무엇입니까? 또한 샘플 HTML을 보여줄 수 있습니까? –

+0

@Chris - 단어 목록 인 것 같습니다.) –

+0

목록이있는 객체 @Chris – sMilbz

답변

2

rndWord '), 다음과 같이 할 수 있습니다.

var r = rndWord; 
while (r == rndWord) { 
    rndWord = Math.floor(Math.random() * (listOfWords.length)); 
} 
+0

감사합니다 완벽한 대답 – sMilbz

0

정확하게 이해하지만 잘 모르겠 으면 큰 mayb 예 ..

$('td[data-word="' + listOfWords[rndWord].name + '"]').not($(this)).addClass('spellword'); 
+0

FYI :'.not ($ (this)) === .not (this)' –