2016-10-28 80 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() { 

    }) 
; 
相关问题