.click事件在jquery中不起作用

我的页面中有以下脚本:

$(document).ready(function () { $('.RemoveLink').click(function () { //dialog box $('#dialog').dialog({ autoOpen: false, width: 400, modal: true, resizable: false }); //end dialog box var fileAddress = this.id; var parent=$(this).parent().parent(); $('#dialog').dialog('open'); $('#dialog').dialog({ /*Initialising a confirmation dialog box (with cancel/OK button)*/ buttons: { "delete": function () { $(this).dialog('close'); $.ajax({ url: "url", data: { id: fileAddress }, success: function (mydata) { parent.hide(); //$('#FileThumbs .ImageFileItem[id=' + fileAddress + ']').hide(); }, type: "GET" }); }, "cancle": function () { //if the User Clicks the button "cancel" $(this).dialog('close'); } } }) return false; }); $('.ResponseLink').click(function () { var idval = this.id; $.ajax({ url: "url", data: { id: idval }, dataType: 'html', success: function (mydata) { $("#ContactArea").empty().append(mydata); }, type: "GET" }); return false; }); }); 

如你所见,我也使用jquery ui拨号盒。 当我单击一个带有’RemoveLink’类的链接时,它可以正常工作并弹出对话框,但是当我点击带有’ResponseLink’类的链接然后单击带有’RemoveLink’的链接后,该页面不会显示对话框和链接作为普通链接。

你能帮帮我吗?

更新 :我使用的是asp.net mvc及其部分视图。 我在部分视图中放了一些表单,并使用Ajax.BeignForm()方法对表单进行异步发送,但有一点。 要使validation与Aj​​ax.BeignForm()一起使用,我应该引用必要的脚本,即使我在调用局部视图的视图中引用了主题。 我删除了那些重新引用的脚本,现在再次显示对话框,但我在表单上丢失了客户端validation!!!!!

使用.delegate而不是.delegate

 $('#ContactArea').delegate('.RemoveLink', 'click', function (e) {... 

在您的情况下,您将click事件附加到附加click事件处理程序时出现的.RemoveLink元素。 清空并清空后,这些元素将被未附加事件处理程序的新元素集替换。

使用.delegate将确保#ContactsArea中的内容发生更改,其中的.RemoveLink元素将继续处理。 在文档中阅读更多内容。