jQuery – 动态创建的制表符元素不会触发事件

我正在使用jQuery UI Tabs 。

我有一个添加新标签的按钮。 我使用以下代码:

 var newTabId = $('#tabs').tabs('option', 'selected') + 1; $('#tabs').tabs("add",'someUrl.htm','New Tab',newTabId); 

(选项卡将添加到当前选定的选项卡旁边)

现在,没有新添加的选项卡可以触发任何事件,例如点击或hover

 $('#tablist li').click(function(){ alert('test message'); }); 

但是事件会针对初始源代码中的选项卡正确触发。

怎么解决?

请改用live

 $('#tablist li').live('click', function(){ alert('test message'); }); 

或者更好的是, delegate活动

 $('#tablist').delegate('li', 'click', function(){ alert('test message'); }); 

您可能需要在创建事件时将元素绑定到事件,如果它有任何兴趣.clone(true)将克隆项目并保持它与事件的绑定。