Jquery 将多个不同元素悬停在列表中,显示单个图像
我尝试完成一个元素列表,在该列表上悬停一个不同的图像 像这样的Jquery 将多个不同元素悬停在列表中,显示单个图像,jquery,image,onmouseover,Jquery,Image,Onmouseover,我尝试完成一个元素列表,在该列表上悬停一个不同的图像 像这样的 <ul id="test"> <li id="sidebarList_1">Image 1</li> <li id="sidebarList_2">Image 2</li> <li id="sidebarList_3">Image 3</li> <ul> <div id="imgDiv_1"> <img
<ul id="test">
<li id="sidebarList_1">Image 1</li>
<li id="sidebarList_2">Image 2</li>
<li id="sidebarList_3">Image 3</li>
<ul>
<div id="imgDiv_1">
<img src="http://www.freemacware.com/wp-content/images/smultron1.png" />
</div>
<div id="imgDiv_2">
<img src="http://www.freemacware.com/wp-content/images/smultron2.png" />
</div>
<div id="imgDiv_3">
<img src="http://www.freemacware.com/wp-content/images/smultron3.png" />
</div>
$(this).mouseover(function() {
$("#imgDiv_1").css('visibility','visible');
}),
$(this).mouseout(function() {
$("#imgDiv_1").css('visibility','hidden');
});
$('div').click(function(){
$(this) //<--- refers to the div that was clicked
});
正如所见,它是静态的,因为它是现在。我尝试了类似这样的方法来获取li中id元素的编号(例如侧边栏列表1):
但这不管用。我怎样才能完成我想做的事情呢?试试用这个
$("#test li").mouseover(function() {
var myString = $(this).attr("id").replace("sidebarList_","");
$("#imgDiv_" + myString).css('visibility','visible');
});
$("#test li").mouseout(function() {
var myString = $(this).attr("id").replace("sidebarList_","");
$("#imgDiv_" + myString).css('visibility','hidden');
});
试试这个
$("#test li").mouseover(function() {
var myString = $(this).attr("id").replace("sidebarList_","");
$("#imgDiv_" + myString).css('visibility','visible');
});
$("#test li").mouseout(function() {
var myString = $(this).attr("id").replace("sidebarList_","");
$("#imgDiv_" + myString).css('visibility','hidden');
});
我将向
li
元素添加一个data-*
属性,其值对应于相关的div
:
<ul id="test">
<li id="sidebarList_1" data-img="imgDiv_1">Image 1</li>
<li id="sidebarList_2" data-img="imgDiv_2">Image 2</li>
<li id="sidebarList_3" data-img="imgDiv_3">Image 3</li>
<ul>
这是一个例子
这使用了on
方法,将选择器作为第二个参数,以利用事件删除(每个li
元素只有一个事件处理程序,而不是一个)。它假定默认情况下div
元素是隐藏的,因此在鼠标悬停时,toggle
调用将使悬停的div
可见
有用的参考资料
li
元素添加一个data-*
属性,其值对应于相关的div
:
<ul id="test">
<li id="sidebarList_1" data-img="imgDiv_1">Image 1</li>
<li id="sidebarList_2" data-img="imgDiv_2">Image 2</li>
<li id="sidebarList_3" data-img="imgDiv_3">Image 3</li>
<ul>
这是一个例子
这使用了on
方法,将选择器作为第二个参数,以利用事件删除(每个li
元素只有一个事件处理程序,而不是一个)。它假定默认情况下div
元素是隐藏的,因此在鼠标悬停时,toggle
调用将使悬停的div
可见
有用的参考资料
- 您应该学习如何使用
$(this)
或this
。从你使用它的方式来看,它实际上没有什么意义。当您想使用时,这将是这样的
<ul id="test">
<li id="sidebarList_1">Image 1</li>
<li id="sidebarList_2">Image 2</li>
<li id="sidebarList_3">Image 3</li>
<ul>
<div id="imgDiv_1">
<img src="http://www.freemacware.com/wp-content/images/smultron1.png" />
</div>
<div id="imgDiv_2">
<img src="http://www.freemacware.com/wp-content/images/smultron2.png" />
</div>
<div id="imgDiv_3">
<img src="http://www.freemacware.com/wp-content/images/smultron3.png" />
</div>
$(this).mouseover(function() {
$("#imgDiv_1").css('visibility','visible');
}),
$(this).mouseout(function() {
$("#imgDiv_1").css('visibility','hidden');
});
$('div').click(function(){
$(this) //<--- refers to the div that was clicked
});
$('div')。单击(函数(){
$(this)/你应该学习如何使用$(this)
或this
。你使用它的方式实际上并不涉及任何内容。当你想使用this
时,应该是这样的
<ul id="test">
<li id="sidebarList_1">Image 1</li>
<li id="sidebarList_2">Image 2</li>
<li id="sidebarList_3">Image 3</li>
<ul>
<div id="imgDiv_1">
<img src="http://www.freemacware.com/wp-content/images/smultron1.png" />
</div>
<div id="imgDiv_2">
<img src="http://www.freemacware.com/wp-content/images/smultron2.png" />
</div>
<div id="imgDiv_3">
<img src="http://www.freemacware.com/wp-content/images/smultron3.png" />
</div>
$(this).mouseover(function() {
$("#imgDiv_1").css('visibility','visible');
}),
$(this).mouseout(function() {
$("#imgDiv_1").css('visibility','hidden');
});
$('div').click(function(){
$(this) //<--- refers to the div that was clicked
});
$('div')。单击(函数(){
$(this)//通过设置鼠标悬停项链接,使其在语义上更好,键盘更易访问,并且更方便您自己:
<ul id="test">
<li id="sidebarList_1"><a href="#imgDiv_1">Image 1</a></li>
<li id="sidebarList_2"><a href="#imgDiv_2">Image 2</a></li>
<li id="sidebarList_3"><a href="#imgDiv_3">Image 3</a></li>
<ul>
这意味着您不需要处理字符串操作,如果用户在浏览器上关闭了JS,则相关项仍然是语义链接的。通过使悬停项链接在语义上更好,键盘更容易访问,并使自己更轻松:
<ul id="test">
<li id="sidebarList_1"><a href="#imgDiv_1">Image 1</a></li>
<li id="sidebarList_2"><a href="#imgDiv_2">Image 2</a></li>
<li id="sidebarList_3"><a href="#imgDiv_3">Image 3</a></li>
<ul>
这意味着你不需要处理字符串操作,如果用户关闭了浏览器上的JS,相关项目仍然是语义链接的。在所有这些示例中,这是什么?在所有这些示例中,这是什么?这是一个多么简洁、好的解决方案!谢谢,非常有魅力。描述得非常符合逻辑!这是一个多么简洁漂亮的解决方案!谢谢,非常有魅力。非常符合逻辑!