2016-10-28 4 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を実装することであると。マウスカーソルがリスト要素の上にあるとき、それは他のフレーズを1秒あたり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() { 

    }) 
; 
関連する問題