2

我有一系列带有“addelement”类的div,它们是动态添加的。在所有这些层中都有更多嵌套的 div,其中一个包含一些带有附加事件的图像。当我点击其中一张图片时,我想知道它是否在这些 div 的最后一个:

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

我不知道为什么,但是这个条件表达式的触发与触发器是否在最后一个'elementadded' div 内的情况无关。但是,如果我尝试将 css 应用于这样的元素:

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

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

4

1 回答 1

0

一种选择是使用 jQuery方法,如果缓存的 jQuery 对象(-1)的长度等于 jQuery 集合中父元素的索引,则index可以选择具有 class of 的图像最近的父.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
}

http://jsfiddle.net/Ga5s9/

然而。如果您只想为带有类的最后一个 div 元素中的图像注册处理程序,则addedelement可以编写代码:

$('div.addedelement').last().find('img.up').click(function(){
   // last
})
于 2012-12-28T18:00:12.407 回答