2012-05-26 79 views
1

我有这个函数,当单击链接时会执行它。 但似乎有一个问题。当我为相同的链接使用一些文本时。 该函数似乎得到很好的执行。但是,当我把图像放在同一个地方时。 事件处理函数似乎没有工作。Clickable图像的事件处理程序

我创建了一个小提琴为这一个:http://jsfiddle.net/bkvirendra/5QqUB/

当链接被点击的UL列表显示。而当用户点击任何地方而不是链接ul列表消失。 所以当我放置一个图像,而不是文本,它似乎没有工作! 如何在图像被点击时显示相同的ul列表?

回答

1

问题是因为当您单击图像时,事件目标变成img标记,而不是a标记。

试试这个:

$(".item").hide(); 
$("#a").click(function(e) { 
    e.stopPropagation(); 
    $(".item").show(); 
}); 

$(document).click(function() { 
    $(".item").hide(); 
}); 

Example fiddle

你也应该考虑删除$(".item").hide()线和CSS使用display: none代替。

+0

它的工作原理!谢谢 !!! –

+0

为小提琴+1 :) –

+0

没问题,很乐意帮忙。 –

0

这是因为e.target返回clicked元素,所以它返回的图像。试试这个代码:

​​