2012-12-25 106 views
3

新手在這裏javascript。我試圖按照此鏈接: How to randomly assign a color on hover effectJavascript to to padding-bottom

,但我沒能複製相同的作用,對我的#menu_4645908導航鏈接...

我用#menu_4645908.red:懸停,但沒有效果。

注:我沒有改變類的變量,從顏色到填充,我只是用相同的類名,而我的工作,我哪裏出了錯任何想法時,其工作將改變..

[更新]

這是使用CSS IM,從線程複製,

#menu_4645908.green:hover { color: #1ace84; } 
#menu_4645908.purple:hover { color: #a262c0; } 
#menu_4645908.teal:hover { color: #4ac0aa; } 
#menu_4645908.violet:hover { color: #8c78ba; } 
#menu_4645908.pink:hover { color: #d529cd; } 

這是JavaScript

$(document).ready(function() { 
    $("a").hover(function(e) { 
     var randomClass = getRandomClass(); 
     $(e.target).attr("class", randomClass); 
    }); 
}); 

function getRandomClass() { 
    //Store available css classes 
    var classes = new Array("green", "purple", "teal", "violet", "pink"); 

    //Give a random number from 0 to 5 
    var randomNumber = Math.floor(Math.random()*6); 

    return classes[randomNumber]; 
} 
+0

你只給id'menu_4645908'元素分配CSS,但你安裝了'懸停() '回調每一個元素。這真的是你想要的嗎?你確定你的'a'元素有這個ID嗎?不會'$(「#menu_4645908」)。hover(function(e){'更合適嗎? – h2ooooooo

回答

1

似乎有有兩個問題在您的代碼中:

  1. jQuery有一個addClass()功能,你想要做
  2. 類不應該懸停分配,而是在網頁的加載速度

那麼試試這個,而不是什麼:(JsFiddle

$(document).ready(function() { 
    $.each($("a"), function(index, element){ 
    $(this).addClass(getRandomClass()); 
    }); 
}); 

function getRandomClass() { 
//Store available css classes 
var classes = new Array("green", "purple", "teal", "violet", "pink"); 
//Give a random number from 0 to 5 
var randomNumber = Math.floor(Math.random()*6); 
return classes[randomNumber]; 
} 

編輯:作爲用戶分號在評論中說,這隻適用於如果你只是想要在頁面加載分配隨機類。

在這種情況下,你可能只是每次都分配一個特定的顏色:

$(document).ready(function() { 
    ("a").hover(function(){ 
    $(this).css('color', getRandomColor()); 
    }, function(){ 
    $(this).css('color', ''); // Reverts to default color 
    }); 
}); 

function getRandomColor() { 
var colors = new Array("#1ace84", "#a262c0", "#4ac0aa", "#8c78ba", "#d529cd"); 
var randomNumber = Math.floor(Math.random()*colors.length); 
return colors[randomNumber]; 
} ​ 
+0

這個假設的目標是讓顏色隨機一次,Da Hao似乎更有可能使用jQuery的懸停專門製作顏色隨機,每次都是隨機的,如果是這樣的話,這意味着他應該在分配新的懸停「事件」(實際上是一個mouseover事件或某事)之前解除綁定,並且,使用attr而不是addClass可以讓您完全覆蓋類刪除任何以前的 - 這似乎是一致的目標,使其隨機每次 – Semicolon

+0

嗨,即時通訊只使用此代碼作爲即時通訊嘗試它,但我的主要目的不是改變顏色,但我的菜單的填充標籤...有沒有辦法將它從改變顏色轉換爲changinf填充? –