Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript&;JQuery:为什么我的AJAX锚只能工作一次? 我来自C、C++和java编程背景,现在我正在为我正在处理的个人项目而用JavaScript和jQuery润湿。_Javascript_Jquery_Dom - Fatal编程技术网

Javascript&;JQuery:为什么我的AJAX锚只能工作一次? 我来自C、C++和java编程背景,现在我正在为我正在处理的个人项目而用JavaScript和jQuery润湿。

Javascript&;JQuery:为什么我的AJAX锚只能工作一次? 我来自C、C++和java编程背景,现在我正在为我正在处理的个人项目而用JavaScript和jQuery润湿。,javascript,jquery,dom,Javascript,Jquery,Dom,我已经为我的项目创建了主页,该主页应该是“登录/创建帐户/发送密码重置代码/重新发送激活代码”页面。感兴趣的因素包括: 包含当前窗体的div 包含指向其他窗体的锚的div 包含前两个div的div 页面最初以登录表单及其关联的锚定div开始。单击锚定div中的一个锚定(例如“创建帐户”锚定),调用JQuery replaceWith()方法,用请求的表单div及其关联的锚定div替换当前表单div和锚定div 代码是有效的。。。但每次单击锚点时仅一次。为什么会这样?在使用JQuery元素之前

我已经为我的项目创建了主页,该主页应该是“登录/创建帐户/发送密码重置代码/重新发送激活代码”页面。感兴趣的因素包括:

  • 包含当前窗体的div
  • 包含指向其他窗体的锚的div
  • 包含前两个div的div
页面最初以登录表单及其关联的锚定div开始。单击锚定div中的一个锚定(例如“创建帐户”锚定),调用JQuery replaceWith()方法,用请求的表单div及其关联的锚定div替换当前表单div和锚定div

代码是有效的。。。但每次单击锚点时仅一次。为什么会这样?在使用JQuery元素之前,我将它们放在变量中,这样即使它们已经从DOM中“删除”了,它们仍然是可用的,或者我是这么想的。有人能帮忙解释一下吗

下面是代码(“.formAndLinksDivs”是一个类,用于所有包含表单和锚定div的div,“#content”是包含这些div类型的页面的主div):

加载DOM时,将注册
.click()
.live('click',…)
绑定到任意元素,这是使用jQuery创建元素并向其附加事件时所需的

因此,我将更改这些类型的函数定义:

$(".ajaxLinkSendResetCode").click(function()
其中:

$(".ajaxLinkSendResetCode").live('click', function()

如果要将处理程序附加到的元素被新元素替换,则基本事件处理程序附加方法在其元素被替换时将被“覆盖”。要解决此问题,请使用附加事件。这将确保处理程序应用于与选择器匹配的任何元素,即使在添加/删除元素时也是如此。

单击事件绑定到您删除的对象,而不是新对象


查看处理程序,而不是使用.click()绑定。

Um,
click
bind('click'
)的快捷方式。您的示例完全相同。您的意思是
live
$(".ajaxLinkSendResetCode").live('click', function()