将.mouseover和.mouseout附加到数组中

时间:2016-10-28 09:17:12

标签: jquery html

我认为这不是特别复杂,但我只是开始理解jquery。基本上我有一个数组,在加载页面时显示一个随机列表元素短语。这是一个小提琴和代码:http://jsfiddle.net/uRd6N/

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和.mouseout,所以当鼠标光标在列表元素上时,它以每秒10个短语的速率滚动其他短语(仅作为示例)。我只是不确定如何实现.mouseover和.mouseout,确切的语法让我搞砸了。任何帮助,将不胜感激。

2 个答案:

答案 0 :(得分: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 () {

    })
;

答案 1 :(得分:0)

您可以使用$(array)将数组转换回jquery对象(元素列表)。

使用点击的示例:

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

更新小提琴(点击):QAF Data Driven

使用鼠标悬停的示例:

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

您可以在没有.toArray()的情况下完成所有工作,然后无需转换回来。