1

我正在使用此处的照片滑块代码: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 经验,所以很容易是我做错了。

感谢任何帮助!

4

3 回答 3

2

尝试这个:

$fp_content_wrapper.find('.content>*:not(.caption)').bind('click',function(e) .....

发生的事情是您正在选择内容标签,而不是您想要选择其中的内容,除了 .csption 类的任何内容。'>' 表示正下方的元素,'*' 表示全选。所以它的意思是“选择.content 正下方不是.caption 类的所有内容”。

如果您继续使用 jquery,那么研究选择器是值得的。

祝你好运

于 2012-04-30T12:14:29.363 回答
1

尝试:

$fp_content_wrapper.find('.content:not(.caption)').bind("click", ...
于 2012-04-30T10:11:43.947 回答
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属性是什么。这将是一个更具体的测试。

于 2012-04-30T10:42:41.543 回答