确定clicked元素是否在特定div中

时间:2012-12-28 17:53:34

标签: jquery event-delegation

我有一系列div与课程" addedelement"这是动态添加的。 在所有这些图层中,有更多嵌套的div,其中一个包含一些附加事件的图像。当我点击其中一张图片时,我想知道它是否在这些div的最后一段内:

if($(this).is('div.addedelement:last div.contextmenu img.up'))
{
    alert('Ok');
}

我不知道为什么,但这个条件表达式是独立于触发器位于最后一个元素添加内部的情况下触发的。 div或不。但是,如果我尝试将css应用于这样的元素:

$('div.addedelement:last div.contextmenu img.up').css('display','none');

它就像一个魅力。 我错过了什么? 有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

一个选项是使用jQuery index方法,您可以选择具有.addedelement类的图像的最近父级,并将该元素传递给index方法,如果长度为// define these variables outside of the event handler var $a = $('div.addedelement'), len = $a.length - 1; // within your event handler var cur = $(this).closest('div.addedelement').get(0); if ( $a.index(cur) === len ) { // last } 缓存的jQuery对象(-1)等于jQuery集合中父元素的索引,然后元素是最后一个。

addedelement

http://jsfiddle.net/Ga5s9/

然而。如果你想只为$('div.addedelement').last().find('img.up').click(function(){ // last }) 类的最后一个div元素中的图像注册一个处理程序,你可以编码:

{{1}}