Javascript 克隆<;tr>;从一个窗体添加到另一个窗体-但丢失链接(事件)
我正在修改一个第三方构建的web客户端消息传递API,以增加可以搜索聊天室的服务器数量。API是为在一个服务器节点上搜索而构建的。服务器响应的形式为表单(没有从中获取字段的方法),并通过回调将其发布到浏览器 结果将是一个搜索室列表,选中该列表时将触发和事件,并允许用户加入聊天室 我修改了代码,使其多次抛出搜索请求,并获得显示在多个div中的多个响应表单 我已经克隆了/.clone(true)/行,并成功地将它们追加到最后一个表单中,显示得非常完美(感谢这里的其他帖子:),但用户只能从最后一个表单响应中选择列表,而另一个列表将仅显示为文本 有没有办法克隆链接呢?我对网络编程非常陌生,我认为链接只有在某个实例中才是活动的(当收到表单时,该实例将在收到另一个表单时被替换),但我不能很肯定这一点 此函数用于接收最后一个表单并追加保存的行Javascript 克隆<;tr>;从一个窗体添加到另一个窗体-但丢失链接(事件),javascript,jquery,xmpp,cisco,Javascript,Jquery,Xmpp,Cisco,我正在修改一个第三方构建的web客户端消息传递API,以增加可以搜索聊天室的服务器数量。API是为在一个服务器节点上搜索而构建的。服务器响应的形式为表单(没有从中获取字段的方法),并通过回调将其发布到浏览器 结果将是一个搜索室列表,选中该列表时将触发和事件,并允许用户加入聊天室 我修改了代码,使其多次抛出搜索请求,并获得显示在多个div中的多个响应表单 我已经克隆了/.clone(true)/行,并成功地将它们追加到最后一个表单中,显示得非常完美(感谢这里的其他帖子:),但用户只能从最后一个表单
_01handleConfigSubmit: function (form, error) {
if (form) {
var formView = new jabberwerx.ui.XDataFormView(form);
var that = this;
formView.event("xdataItemSelected").bind(function(evt) {
that.jq.find(".muc_search_button_join").removeAttr("disabled");
var resultTable = that.jq.find(".muc_search_results table.result_table");
resultTable.find("tr.selected").removeClass("selected");
that._selectedItem = evt.data.selected;
resultTable.find("tr#"+evt.data.selected._guid).addClass("selected");
});
var searchResultsDiv = jabberwerx.$(".muc_search_results", this.jq);
searchResultsDiv.empty();
this.update();
var dim = {
width: searchResultsDiv.width(),
height: searchResultsDiv.height()
};
formView.render().appendTo(searchResultsDiv);
formView.dimensions(dim);
$("table.result_table tbody").append($trs);
} else {
this._showError(error);
}
},
谢谢大家! 此函数中的克隆发生在何处?我怀疑问题在于使用
formView.render()
克隆元素。这只会获取HTML,丢失任何事件处理程序。您需要一个返回实际DOM元素的方法,然后可以使用jQuery的.clone(true)
将其与事件处理程序一起克隆。嘿,Banmar,.clone(true)成功了!!!非常感谢你。我在另一个函数上进行了克隆,将对象保存为全局变量。我仍在使用.render()。非常感谢!