我看过很多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…