Jquery 加载ajax后无法选择元素

Jquery 加载ajax后无法选择元素,jquery,ajax,wordpress,Jquery,Ajax,Wordpress,我正在使用WordPress主题Twenty12,它似乎通过ajax请求加载页面。我有一个按钮标题导航链接,显示和隐藏页面上的另一个元素。它在没有ajax调用的情况下在第一个页面加载时工作,但是当我导航到另一个页面时,ajax会加载它,并且我的程序无法再找到nav mobile wrapper $(document).on('click', "#header-navigation-link", function () { $(document).find("#n

我正在使用WordPress主题Twenty12,它似乎通过ajax请求加载页面。我有一个按钮标题导航链接,显示和隐藏页面上的另一个元素。它在没有ajax调用的情况下在第一个页面加载时工作,但是当我导航到另一个页面时,ajax会加载它,并且我的程序无法再找到nav mobile wrapper

        $(document).on('click', "#header-navigation-link", function () {

        $(document).find("#nav-mobile-wrapper").fadeToggle();
        alert( 'Success!' );
    });
在所有ajax加载的页面上,警报总是会弹出,因此它会找到按钮,而不是要显示和隐藏的元素。我也试着交换这两个,所以你点击导航移动包装器来切换标题导航链接,同样的事情也发生了,反之亦然

在这个函数中,我缺少什么作为导航移动包装器的目标


感谢所有能帮忙的人

如果您知道Id,无需再次查找,只需选择它即可

  $(document).on('click', "#header-navigation-link", function () {    
        $("#nav-mobile-wrapper").fadeToggle();
        alert( 'Success!' );
    });

这个elementnav移动包装器也是由ajax生成的吗?如果是,请确保单击函数和生成此元素的位置在同一“范围”中。例如:

$( document ).ready(function() {
      $.ajax({
       // this is where you send the ajax request to server
      }).done(function(response){
       //because you said, it loaded page via ajax request, so page's loading and #nav-mobile-wrapper's generating probably happened here
       // If so, try put your click function here, inside the 'done' block!
       $(document).on('click', "#header-navigation-link", function(){
       // your stuff
     });
   })
我认为您的函数不起作用的原因很简单,因为它找不到nav mobile wrapper元素。没有你的代码,这是我能做的最好的猜测。不管怎样,如果你还有这个问题,请告诉我

顺便说一句,我想

$("#header-navigation-link").on('click',function(){
// you code
});

是一种更简单的读写方法:

强烈建议您不要使用load方法。尝试使用并在body函数结束之前放置元素选择。

不幸的是,我也尝试过。你还有其他建议吗?我想知道答案,但是作为一种解决方法,你可以尝试用ajax调用加载javascript,然后它就会工作。如果你能调整wordpress来做到这一点,我不知道这是否可能,这个问题还不清楚。我使用的是wordpress主题二十一,它似乎通过ajax请求加载页面。我认为2012不会通过ajax请求加载任何页面。我同意这里的@JimMaguire。你能提供一个例子页吗?你能确认JS在每个页面加载中吗?当你输入$document.findnav-mobile-wrapper.fadeToggle时会发生什么;或控制台中这些页面上的$header导航链接?因此不建议使用仅链接的答案。请在此提供解决方案的要点。