我希望你们所有的jquery专家都可以帮助我解决这个问题。我在 html/jquery 中有一个聊天室。我有一个带有动态用户列表的 DIV,每次新用户进入聊天室时都会刷新。当您单击任何用户时,会出现一个用于私人聊天的 jquery 对话框。这一切都很好。问题是在打开第一个私人聊天(jquery 对话框)后,如果有新用户进入聊天室,则聊天室用户的链接不再起作用。(即使尝试刷新用户列表)。我检查了 mozilla 中的开发人员控制台,发现当打开对话框时,将 DIV 部分添加到 html 页面的末尾。那是所有其他 jquery 生成的链接停止工作的时候。
这是有问题的功能(适用于任意数量的用户,直到第一个私人聊天对话框打开,之后链接停止工作):
<script type="text/javascript">
function privateChatLoader() {
$(document).ready(function() {
$('#chatRoomUsers td a').each(function() {
var chatRoomId = $.trim($('#chatRoomId').val());
var fromUsername = $.trim($('#username').val());
var privateMessageTop = '<tr><td align="left" valign="middle" class="popup-box-top"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="10"> </td><td width="300" align="left" valign="middle"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="23" align="left" valign="middle"><img src="images/icon-popup.png" width="16" height="16" /></td><td align="left" valign="middle" class="popup-title-text ">_TO_USERNAME_</td></tr></table></td><td align="right" valign="middle"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td align="right" valign="middle"> </td><td width="18" align="right" valign="middle"><a href="#" onClick="closePrivateMessage();" id="dialog2"><img src="images/button-close.png" width="15" height="14" border="0" /></a></td></tr></table></td><td width="10"> </td></tr></table></td></tr>';
var $dialog = $('<div></div>')
var $link = $(this).on('click', function() {
var toUsername = $link.attr("id");
privateMessageTop = privateMessageTop.replace("_TO_USERNAME_", toUsername);
$dialog
.load('privatemessage.php?cid=' + chatRoomId + '&s=' + fromUsername + '&r=' + toUsername)
.dialog({
//autoOpen: false,
title: privateMessageTop,
close: toUsername,
width: 400,
height: 300
});
$link.click(function() {
$dialog.dialog('open');
return false;
});
return false;
});
});
});
}
*更新: * 没关系。我让它工作了。问题是在我在对话框中加载的页面中,我还再次加载了我的所有 javascript 和 jquery 文件(从主页复制和粘贴)。一旦我从该页面中删除了所有内容,一切都会按预期工作。多谢你们