将.click()添加到动态创建的选项卡中

时间:2009-12-13 20:24:17

标签: javascript jquery-ui tabs

我正在尝试将.click()添加到我动态添加的标签中。

到目前为止

代码:

var newtabid = "#privChatArea" + chatmessage.SenderID;

$("#tabs").tabs("add", newtabid, "<span style=\"color: red;\">" + chatmessage.SenderNick + "</span>");

我似乎无法弄清楚如何引用Tab键,因为我实际给出ID的唯一元素是&lt; div id =“privChatArea [id]”&gt;&lt; / div&gt; < / p>

任何人都知道怎么做?

编辑:澄清

标签由

组成
   <div id="tabs">
    <ul id="tabscontainer">
        <li><a href="#chatroom1" id="_chatroom1"><span>test1</span></a></li>
        <li><a href="#chatroom2" id="_chatroom2"><span>test2</span></a></li>
        <li><a href="#chatroom3" id="_chatroom3"><span>test3</span></a></li>
    </ul>
    <div id="chatroom1" style="max-height: 400px; height: 400px; width: 100%; overflow-y: scroll;">
    </div>
    <div id="chatroom2" style="max-height: 400px; height: 400px; width: 100%; overflow-y: scroll;">
    </div>
    <div id="chatroom3" style="max-height: 400px; height: 400px; width: 100%; overflow-y: scroll;">
    </div>

我在创建选项卡时创建的id的引用时遇到问题。使用.tabs(“add”)

时未指定此ID

干杯!

2 个答案:

答案 0 :(得分:3)

使用“live”绑定动态创建元素的事件。您可以为所有选项卡选择一种选择器(可能是类等),并在$(文档)上实时绑定事件.ready()

http://docs.jquery.com/Events/live

编辑:再次阅读你的问题之后,我想我应该澄清一下。您应该将直播事件绑定到您正在创建的“范围”

答案 1 :(得分:1)

应该如此简单:

$("#tabs span.private-chat-area").live("click", function(e) {
    var senderId = $(this).attr("rel");
    ...
});

var newtabid = "#privChatArea" + chatmessage.SenderID;

$("#tabs").tabs("add", newtabid, "<span style=\"color: red;\" class=\"private-chat-area\" rel=\"" + chatmessage.SenderID + "\">" + chatmessage.SenderNick + "</span>");