2011-07-20 49 views
0

我想为我的网站创建一个灯箱,但我遇到了问题。由于我在jQuery中不太流利,所以我犯了很多错误。其中之一是,我不能让preventDefault()适用于文本和图像链接!请检查下面的代码preventDefault()不适用于图像链接

HTML代码:

Text link: <a class='ultbox_simg' href='images/1.jpg'>Image 1</a> 
Image link: <a href='images/1.jpg'><img src="images/1t.jpg" /></a> 

jQuery脚本:

$(document).ready(function ($){ 

    $(".ultbox_simg").click(function (obj){ 
     obj.preventDefault(); 
     var img_link=$(this).attr("href"); 

    }); 
}); 
+0

为什么你需要防止在图像上的默认?你需要这样做的锚定标记 – Ibu

+0

也许你应该添加'类'属性的图像链接为文本链接是? '' – marioosh

+0

@Ibu:标题是(轻度)误导性的,但是如果你看看代码,这是他试图挂钩的'a'他只是没有钩住他们两个。 –

回答

3

您也添加类到IMG链接:

Text link: <a class='ultbox_simg' href='images/1.jpg'>Image 1</a> 
Image link: <a class='ultbox_simg' href='images/1.jpg'><img src="images/1t.jpg" /></a> 

$(".ultbox_simg").click(function (obj){ 
    obj.preventDefault(); 
    var img_link=$(this).attr("href"); 

}); 

或者(我认为更好),y欧可追求的目标与HREF链接:

$('a[href="images\\/1\\.jpg"]').click(function (obj){ 
    obj.preventDefault(); 
    var img_link=$(this).attr("href"); 

}); 
0

你也应该防止默认动作:

<a href='images/1.jpg'> 

因此,对于其添加类如“noClick”,添加脚本:

$(".noClick").click(function (obj){ 
     obj.preventDefault(); 
}); 
0

您需要将类.ultbox_simg添加到图像链接。

<a class='ultbox_simg' href='images/1.jpg'><img src="images/1t.jpg" /></a> 
0

这里是你需要改变什么:

Image link: <a href='images/1.jpg'><img src="images/1t.jpg" /></a> 

到:

Image link: <a href='images/1.jpg' class='ultbox_simg'><img src="images/1t.jpg" /></a> 

现在将工作

0

随着$('.ultbox_simg')您选择具有类元素ultbox_simg并将click处理程序绑定到它们。

但图片链接没有此类分配..

所以

<a class="ultbox_simg" href="images/1.jpg"><img src="images/1t.jpg" /></a>