2016-10-28 75 views
0

我不認爲這是特別複雜的,但我只是開始瞭解jQuery。基本上我有一個數組,在加載頁面時顯示隨機列表元素短語。下面是它小提琴和代碼:http://jsfiddle.net/uRd6N/附加.mouseover和.mouseout到一個數組

的jQuery:

var list = $("ul li").toArray(); 
var elemlength = list.length; 
var randomnum = Math.floor(Math.random()*elemlength); 
var randomitem = list[randomnum]; 
$(randomitem).css("display", "block"); 

HTML:

<ul> 
    <li>Item 1</li> 
    <li>Item 2</li> 
    <li>Item 3</li> 
    <li>Item 4</li> 
    <li>Item 5</li> 
    <li>Item 6</li> 
</ul> 

CSS:

body { font-family: Helvetica, Arial, sans-serif; font-size:20px; } 
li { display: none; } 

我想是.mouseover和實施。因此當鼠標光標位於列表元素上方時,它以速率滾動瀏覽其他短語每秒10個短語(僅作爲示例)。我只是不知道如何實現.mouseover和.mouseout,確切的語法不斷攪亂我。任何幫助,將不勝感激。

回答

0

您可以使用$(array)將數組轉換回jquery對象(元素列表)。

示例使用點擊:

$(list).click(function() { alert($(this).text()); }) 

更新小提琴(用於點擊):http://jsfiddle.net/uRd6N/584/

例使用鼠標懸停:

$(list).mouseover(function() { alert($(this).text()); }) 

你也許能夠做所有的工作沒有.toArray() ,那麼就沒有必要轉回去了。

2

注意$("ul li")將返回數組,所以不需要.toArray()。使用.eq(number)來選擇特定索引元素。使用.mouseover()附加事件。


var list = $("ul li"); 
var elemlength = list.length; 
var randomnum = Math.floor(Math.random() * list.length); 
var randomitem = list.eq(randomnum); 

randomitem.css("display", "block"); 

$("ul li") 
    .mouseover(function() { 
     // Use `this` to refer to currently hovered element. 
    }) 
    .mouseleave(function() { 

    }) 
; 
相關問題