2009-10-03 111 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