Jquery 如何将在ajax中调用的div中单击的类作为目标

Jquery 如何将在ajax中调用的div中单击的类作为目标,jquery,ajax,class,target,Jquery,Ajax,Class,Target,首先,您能解释一下浏览器如何存储ajax中调用的div的内容吗 我不明白为什么在ajax中调用并在浏览器检查器中显示的内容不能直接用jquery作为目标 那么,我如何能够轻松地在ajax中调用的div中定位一个类(close window post)来关闭这个类呢。 在我的类似问题中,答案讲述了另一个ajax调用,该调用使用ajax调用div中的目标特定类 唯一有效的方法是针对ajax中调用的div周围的div(windowpost): <div id='window-post' clas

首先,您能解释一下浏览器如何存储ajax中调用的div的内容吗

我不明白为什么在ajax中调用并在浏览器检查器中显示的内容不能直接用jquery作为目标

那么,我如何能够轻松地在ajax中调用的div中定位一个类(close window post)来关闭这个类呢。 在我的类似问题中,答案讲述了另一个ajax调用,该调用使用ajax调用div中的目标特定类

唯一有效的方法是针对ajax中调用的div周围的div(windowpost):

<div id='window-post' class='win-post dis-none pos-abs p-1v w-100vw h-100vh zIndex899'>
//Call in ajax  <div class="w-100 h-100 d-flex-center"><i class="im-x-mark"></i></div> 
</div>
我的脚本按以下顺序调用:

Admin-ajax.php

callajax.php

myJquery.js文件

我已经在myJquery.js中添加了“jQuery(document).ready(function(){)”

(编辑)以下是我与您的ajax通话:

jQuery(document).ready(function(){

function CloseAjaxPost(){
  jQuery('#window-post .post-title').find('.im-x-mark').on('click',function(){
        alert('Whaouuuuuh !!!');
        jQuery('#window-post').addClass('dis-none');   
    });
 }

jQuery('.post-link').click(function() {
  var post_id = jQuery(this).data("id");
  jQuery.ajax({
      type: "POST",
      url: ajaxurl,
      data: {'action': 'more_content','the_ID': post_id},
      dataType: 'json',
      success: function (data) {jQuery('#window-post').html(data);}
  });
});
});

加载ajax后,需要调用该函数。 大概是这样的:

function callAfterAjaxPost() {
    jQuery('#window-post').find('.im-x-mark').on('click',function(){
        jQuery('#window-post').addClass('dis-none');   
        // Or jQuery('#window-post').hide();
    });
}

$.ajax({
  url: "callajax.php",
  context: document.body
}).done(function() {
  callAfterAjaxPost(); // Call function
});

您的代码将在加载页面时存在的所有
.im-x-mark
元素上绑定单击处理程序。但是,在加载页面后,ajax调用的内容还不存在。因此,单击处理程序不会绑定到这些元素

最好的选择是使用事件委派。假设
#window post
是最接近的静态父元素,您可以从那里执行事件委派。JQuery通过使用带有可选选择器参数的on函数提供了对这一点的强大支持

代码如下所示

jQuery('#window-post').on('click', '.im-x-mark', function(){
    jQuery('#window-post').addClass('dis-none');   
    // Or jQuery('#window-post').hide();
});

这回答了你的问题吗?谢谢。我本以为我可以为所有ajax工作,但我在Wordpress上工作。我必须将我的帖子转载吗?我添加了ajax cal lin。我的第一篇帖子使用了旧的ajax函数。我尝试了这个脚本,但仍然不起作用!第一个问题已编辑。谢谢如果你在页面中硬编码div而不使用使用ajax?
jQuery('#window-post').on('click', '.im-x-mark', function(){
    jQuery('#window-post').addClass('dis-none');   
    // Or jQuery('#window-post').hide();
});