Javascript 在进行AJAX调用之后,我的jQuery函数就失效了

Javascript 在进行AJAX调用之后,我的jQuery函数就失效了,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,HTML: 我的HTML和JavaScript就是这样,当我点击flag按钮时,它会提醒data-id3(非常有用)。我的问题是从一个AJAX调用开始的 阿贾克斯: XHR.responseText等于此HTML代码 var page = $(".buttonic").data("page"); var XHR = new XMLHttpRequest(); XHR.open("POST", "turnthepage.php", true); XHR.setRequestHeader("Con

HTML:

我的HTML和JavaScript就是这样,当我点击flag按钮时,它会提醒data-id3(非常有用)。我的问题是从一个AJAX调用开始的

阿贾克斯:

XHR.responseText等于此HTML代码

var page = $(".buttonic").data("page");
var XHR = new XMLHttpRequest();

XHR.open("POST", "turnthepage.php", true);
XHR.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

XHR.onreadystatechange = function() {
  if(XHR.readyState == 4 && XHR.status == 200) {
    $(".divses").children(".point").remove();
    $(".divses").append(XHR.responseText);
  }
}

XHR.send("page="+page);

看起来我得到的是相同的HTML,但是$id3和$values2变量发生了变化,这就是我调用AJAX的原因

获得此信息后,我的新HTML:

<div class="point" data-id3="'.$id3.'" data-values2="'.$values2.'">
  <input type="button" class="buttonic" />
  <input type="button"  class="buttonic" />
  <input type="button"  class="flag" />
</div>

在那部分之后,我点击我的新
.flag
按钮,但什么也没发生。为什么我的jQuery部分在进行AJAX调用后变得无用。我的所有站点都是相同的,我的jQuery也是相同的,但当我单击我的新
。标志
按钮时,jQuery不起作用


可能是什么问题?

正在通过AJAX修改DOM,从而影响事件侦听器。将
$(“.flag”)。单击if语句中XHR.onreadystatechange函数底部的()
函数,或使用以下命令:

<div class="divses">
  <div class="point" data-id3="'.$id3.'" data-values2="'.$values2.'">
    <input type="button" class="buttonic"></input>
    <input type="button"  class="buttonic"></input>
    <input type="button"  class="flag"></input>
  </div>
</div><!-- please pay attention it is not same as first HTML $id3 and $values2 has changed. -->

DOM正在通过AJAX进行修改,从而影响事件侦听器。将
$(“.flag”)。单击if语句中XHR.onreadystatechange函数底部的()
函数,或使用以下命令:

<div class="divses">
  <div class="point" data-id3="'.$id3.'" data-values2="'.$values2.'">
    <input type="button" class="buttonic"></input>
    <input type="button"  class="buttonic"></input>
    <input type="button"  class="flag"></input>
  </div>
</div><!-- please pay attention it is not same as first HTML $id3 and $values2 has changed. -->

它是具有
.on()
的委托处理程序。但我不知道你需要它,当你添加相同的(这么说)。但是如果您使用
文档
它会一直冒泡,并可能触发其他
事件处理程序
。@dollarVar是的,像Tilwin Joy的回答中那样更具体地定位会更明智。只要在#dives之外没有需要监视的.flag实例,我就不确定.flag是否是带有
.on()
的委托处理程序。但我不知道你需要它,当你添加相同的(这么说)。但是如果您使用
文档
它会一直冒泡,并可能触发其他
事件处理程序
。@dollarVar是的,像Tilwin Joy的回答中那样更具体地定位会更明智。只要在#dives之外没有需要监视的.flag实例-我不确定。的可能副本的可能副本
<div class="divses">
  <div class="point" data-id3="'.$id3.'" data-values2="'.$values2.'">
    <input type="button" class="buttonic"></input>
    <input type="button"  class="buttonic"></input>
    <input type="button"  class="flag"></input>
  </div>
</div><!-- please pay attention it is not same as first HTML $id3 and $values2 has changed. -->
$(document).on('click', '.flag', function () {
    var id3 = alert($(this).parent().data("id3"));
});