2012-05-11 46 views
1

有两个div部分具有相同的类别,也有相同的ullia只有一个具有相同类名的div的jQuery点击事件

我在我的代码中有两个jQuery点击事件。当我点击Google时,两个jQuery点击事件都会触发。但我不想两个都这样做,只有一个。我如何实现这一目标?

例如,如果Google获得点击,我只想要那个jQuery点击事件来做某事,而不是另一个。这些都是DOM元素我一起工作:

<div class = "abc"> 
<ul> 
    <li class="year_"><a href="www.google.com">google</a></li> 
</ul> 
</div> 
<div class ="abc"> 
<ul> 
    <li><a href="www.yahoo.com>yahoo</a></li> 
</ul> 
</div> 

href可能会改变,所以我不能对我的基础选择。我遵循的代码。

$('div.abc ul li[class^="year_"] a').click(function(){ 
    //do something 
}); 

$('div.abc ul li a').click(function(){ 
    //do something 
}); 
+1

您可以为每个链接添加一个唯一的ID,这将使读取这些选择器更容易IMO。 –

+3

是否有'ul。 “实际上工作?这似乎有点奇怪... –

+2

我确定jQuery的['$ .is()'](http://api.jquery.com/is/)或['$ .not()']( http://api.jquery.com/not/)可以派上用场,包括甚至只需一个处理程序...... –

回答

5

你可以做一个条件语句,用 “YEAR_” 类找到李:

$('div.abc ul li a').click(function(){ 
    if ($(this).parents('li').is('[class^="year_"]')){ 
     //do something 
    } else { 
     //do something else 
    } 
}); 

jsfiddle

+0

这是解决问题的适当方法。 +1 – Ohgodwhy

+0

我同意(见上面的评论):http://jsfiddle.net/EFkUp/(并且我确实看到了编辑...';)') –

+1

应该从示例代码也是如此。 –

相关问题