2009-10-03 64 views
0

有时在我的jQuery脚本中,除非嵌套事件,否则它们不起作用。例如...jQuery嵌套事件

$(selector).click(function(){ 
    //do something such as create an element 
    $(selector).click(function(){ 
     //do something with the created element 
    }); 
}); 

可以吗?我一直试图避免它,因为它似乎不是正确的做事方式。但有时它不起作用,所以我必须这样做。

回答

1

您应该嵌套的唯一情况是如果您在初始点击后之后重新分配点击行为。我不知道,如果你正在寻找链,如

$('el') 
.click(function(){}) 
.hover(function(){}) 

这取决于你在做什么,完全是。

0

如果您想要将任何事件应用到元素,则必须在创建元素后执行该操作。

在元素上自然设置事件的jQuery语句只能将其设置为当时存在的元素。您在语句后创建的任何元素都不会神奇地获得您之前在元素上设置的事件。

所以,如果你在一个事件中创建了一个元素,并且想要为它分配一个事件,那么你也必须在事件中这样做。

+0

可能值得一提的是对某些事件使用'live()'和事件委托 – 2009-10-04 00:11:41