我正在使用此处的照片滑块代码:http://tympanus.net/codrops/2010/10/07/slider-gallery/并尝试修改它,以便图片下方的链接在新窗口中加载。
例如:
<div class="content">
<div><a href="#"><img src="http://imageurl" alt="largeimageurl" /></a></div>
<div class="caption"><a target="_blank" href="image.php?id=someid&svc=somesvc" rel="nofollow">More Info</a></div>
</div>
我用javascript文件尝试了各种不同的东西,目前读取:
$fp_content_wrapper.find('.content').bind('click',function(e){
var $current = $(this);
//track the current one
current = $current.index();
//center and show this image
//the second parameter set to true means we want to
//display the picture after the image is centered on the screen
centerImage($current,true,600);
e.preventDefault();
});
我需要做的是改变第一行,使其正常选择,但不对带有链接的字幕div应用任何内容,以使其表现正常。
我知道SO上有类似的问题,但我尝试过大多数建议的问题。我对JS没有多少经验,所以很容易让我做错了。
感谢任何帮助!
答案 0 :(得分:2)
试试这个:
$fp_content_wrapper.find('.content>*:not(.caption)').bind('click',function(e) .....
发生的事情是您选择了内容标记,而不是想要选择内部标记,除了.csption类的内容。 '&GT;'表示直接位于下方的元素,'*'表示全选。所以它转化为“直接选择.content之下的所有内容。不是一个.caption类”。
如果继续使用jquery,那么在研究选择器时这是值得的。
祝你好运答案 1 :(得分:1)
尝试:
$fp_content_wrapper.find('.content:not(.caption)').bind("click", ...
答案 2 :(得分:0)
试试这个詹姆斯
$fp_content_wrapper.find('.content').bind('click',function(e){
if(!$(this).attr('class'))
{
var $current = $(this);
//track the current one
current = $current.index();
//center and show this image
//the second parameter set to true means we want to
//display the picture after the image is centered on the screen
centerImage($current,true,600);
e.preventDefault();
}
});
有一种更简洁的方法可以做到这一点,但这应该做到。这应该确保只有没有类的div运行该函数。如果你想在另一个div上使用一个类,显然要小心或改变逻辑。
干杯
修改强>
再次查看代码后,您还可以测试div中的超链接,以检查它是否具有alt
属性或alt
属性是什么。这将是一个更具体的测试。