无法调用AJAX链接到PHP单页应用程序中的内部页面 - php

我看过很多StackOverflow答案,但是找不到有效的答案。这似乎应该很简单。

我有一个PHP单页Web应用程序。它具有一个导航栏,可将页面加载为包括在内。单击导航栏将调用jQuery函数,以加载其他include并将类注入div。这在导航中起作用。

在其中一个包含项中,我有一个HTML链接:

<div class="page-content">
    <a class='btn-primary'>See Examples</a>
</div>

这是我要执行的jQuery:

$(".btn-primary").click(function() {
    alert('you clicked me');
    $('.page').attr('class', 'page examples');
    // REPLACE THE CURRENT INCLUDE
    $('.page-content').load('includes/page-examples.php');
    window.scrollTo(0, 0);
});

但是链接不执行该功能。将其更改为div无效。单击甚至不会执行警报。

我试图将链接放入php echo或php print中,但没有区别。我已经检查了所有的命名,没有错字。

使其运作的最佳方法是什么?

-----编辑-----

jQuery是从js文件中调用的,该js文件是通过index.php head标签调用的,并且在DOM ready语句中。看起来DOM已准备就绪,链接加载之前已包含。如果我从js文件中删除了链接的js并将其放入包含在该链接中的链接中,则该链接有效,但是由于将其他内部链接添加到其他包含中的站点,因此会产生问题。

修复的最佳方法是什么?

参考方案

听起来您的javascript点击绑定$(".btn-primary").click(...);是在DOM就绪的情况下执行的。

但是当时.btn-primary尚未在DOM中,因为它只有在您将其包含后才插入DOM中(如果我理解正确的话)。

因此,绑定永远不会发生,并且在您的第一个include加载后,单击绑定代码将不再执行,因此.btn-primary元素没有onClick事件。

.btn-primary元素插入DOM后,您需要运行javascript代码段。像这样:

$('.page-content').load('includes/first-include.php', function(){
    $(".btn-primary").click(function() {
        whatever...
    });
});

jQuery Ajax加载仅适用于单个单词变量 - php

在我的PHP文件中,我将一些变量从输入框传递到链接中,该链接通过jQuery的ajax load函数在其URL中使用该变量加载页面。整个系统运行良好,但仅适用于单字变量。每当涉及到空格时,我的Ajax通话都会中断。我假设这是一个编码问题,但是我也有一些疑问。基本上,它归结为我的PHP文件中的这一行代码,这导致了混乱。是否有可能找出格式是否正确,或者为什么在多…

jQuery Ajax响应在Firefox上不起作用 - php

这是php中的响应。我可以确认数据还可以。 $ajax_response = array( 'product_code' => $ajax_products, 'filter' => $ajax_filter ); echo json_encode($ajax_response); exit(); 这是ja…

PHP strtotime困境 - php

有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00�…

PHP-全局变量的性能和内存问题 - php

假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…

php-casperjs获取内部文本 - php

我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…