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

Ami*_*mit 2 jquery

我正在使用jQuery UI选项卡.

<div id="tabs">
<ul id="tablist">
    <li><a href="#fragment-1"><span>One</span></a></li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

$('#tablist li').click(function(){
    alert('test message');
});
Run Code Online (Sandbox Code Playgroud)

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

怎么解决?

Mat*_*att 7

live改用.

$('#tablist li').live('click', function(){
    alert('test message');
});
Run Code Online (Sandbox Code Playgroud)

或者更好的是,delegate这个事件

$('#tablist').delegate('li', 'click', function(){
    alert('test message');
});
Run Code Online (Sandbox Code Playgroud)