2012-11-01 32 views
1

我有一個非常簡單但令人沮喪的問題。基本上我想要做的是當你MouseIn &在一個特定的元素,然後一個元素文本將隨機更改一個數組。繼承人我的代碼,開始與HTML:隨鼠標隨意更改數組文本?

<div class="logo"> 
    <a href="#"> 
     luke <span>whitehouse</span> 
    </a> 
    <span class="logo-note">// front-end web designer</span> 
</div> 

而且繼承人的JS:

$(document).ready(function() { 
    var quotes = new Array("foo", "bar", "baz", "chuck"); 
    var randno = Math.floor (Math.random() * quotes.length); 
    $('.quote').add(quotes[randno]); 

    $('.logo a').mouseover(function() { 
     $('.logo-note').text(quotes[randno]); 
    }).mouseout(function() { 
     $('.logo-note').text(quotes[randno]); 
    }); 
}); 

回答

1

您需要的時候將鼠標放在輸入/輸出事件發生時獲得隨機文本。在你的代碼中,randno計算一次,永遠不會改變,所以你每次都會得到相同的數組元素。試試這個想法

$('.logo a').mouseover(function() { 
     $('.logo-note').text(quotes[Math.floor (Math.random() * quotes.length)]); 
    }).mouseout(function() { 
     $('.logo-note').text(quotes[Math.floor (Math.random() * quotes.length)]); 
    }); 
+0

嗨Satyajit,謝謝你的迴應。這確實解決了大部分問題,但現在唯一的問題是,如果選擇器中存在任何子標記(在本例中爲「.logo a」,但是我已經更改了某些部分,現在只是「.logo」),那麼腳本再次運行並找到一個新的數組編號,有沒有辦法阻止這種情況? –

+0

您可以更詳細地解釋一下嗎?也許顯示您的新HTML以及需求如何改變。聽起來像某些您不想要的元素一個隨機文本 - 是嗎? – Satyajit

+0

嗨,老兄,我爲你創建了一個codepen。基本上,當你將鼠標懸停在.logo上時,它可以正常工作,但是當你將鼠標懸停在這個'a'標籤中的嵌套元素上時,它再次運行腳本。 http://codepen.io/anon/pen/ovaHg –