使用 .onclick 在幻灯片中显示正确的文本
Show the right text in a slideshow with .onclick
我用JavaScript做了一个简单的幻灯片,工作正常。我想在用户单击图片时显示特定的文本块。
.HTML:
<p>
<img src="images/USA/desert (2).jpg" id="images/USA/desert.jpg" class='miniature'>
<img src="images/USA/dropdown_map (2).jpg" id="images/USA/dropdown_map.jpg" class='miniature'>
<img src="images/USA/pont (2).jpg" id="images/USA/pont.jpg" class='miniature'>
<img src="images/USA/statue (2).jpg" id="images/USA/statue.jpg" class='miniature'>
<img src="images/USA/whitehouse (2).jpg" id="images/USA/whitehouse.jpg" class='miniature'><br />
<img id="grand" src="images/USA/desert.jpg" /><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
</p>
<p class='description' id="images/USA/desert.jpg">
1111
</p>
<p class='description' id="images/USA/dropdown_map.jpg">
2222
</p>
.JS:
$(function() {
$('.miniature').css('border','5px white solid');
$('.miniature:first').css('border','5px black solid');$(function() {
$('.miniature').css('border','5px white solid');
$('.miniature:first').css('border','5px black solid');
$('.miniature').click(function() {
$('.miniature').css('border','5px white solid');
$(this).css('border','5px black solid');
var nom = $(this).attr('id'); // for the slideshow
$('#grand').attr('src',nom); // for the slideshow
$('p.description').attr('id', nom).show(); // For showing the text
});
使用此代码,没有带有默认图片的文本。然后,当我点击一张图片时,所有块都会出现并停留。有人可以告诉我出了什么问题吗?
主要问题是这一行:
$('p.description').attr('id', nom).show();
此行获取带有类"description"的所有段落,然后将其 id 设置为 nom
,然后显示所有对象列表,在本例中是与p.description
匹配的任何内容。
这是函数的jQuery链接。attr()
函数不会为您过滤它。
另外,不幸的是,jQuery选择器中的"''"不好(见这里)。"." 用于选择类,因此它不会在名称中起作用。最后,您不希望在 DOM 中拥有相同 id 的倍数。
下面是一个示例,它在您的 id 名称中使用下划线并删除文件扩展名,并保持 id 的唯一性,从而实现我认为是您想要的效果:http://jsfiddle.net/sz9wep8f/1/
您将所有 p.description 元素的 id 设置为 nom。您希望改为获取该值。您可以将最后一行更改为如下所示:
$('#' + nom).show();
添加第二个参数将设置第一个参数中定义的属性。省略第二个参数时,将获取该参数的值。
http://api.jquery.com/attr/
相关文章:
- 为什么在页面上单击的先前链接的文本显示在 AJAX 请求中
- JavaScript NaN错误,输入文本显示为NaN
- 关于socket.io实时文本显示的问题
- 如何使用javascript使文本显示在文本字段中
- 在它们之间切换时,jQuery 文本显示在活动文本下方
- 使用 ajax 乱码文本显示图像
- 带有文本显示js功能的图像映射 - 某些部分不显示
- 来自 Ajax 请求的文本显示不正确
- 如何使用 JavaScript 使文本显示
- 是否可以将元素内部的文本显示在 ::在 css 之前
- on更改文本框的文本显示在另一个文本框上
- 在文本显示在Scroll上之前在页面上隐藏文本的问题
- 使用带文本显示的Jquery切换文本
- 如何使文本显示速度变慢
- 如何将图片添加到点击计数器文本显示<图像><点击量>
- 文本显示有延迟
- 根据在另一个文本框中输入的文本显示文本框中的文本
- 如何从点击文本显示文件浏览器,并在悬停文本时将鼠标光标更改为指针
- 使文本显示为几行可点击的线条
- 如何使文本显示