前几天我问了一个类似的问题,并认为我已经解决了,但现在我意识到我没有。不过,我确实从另一个问题中学到了一些有价值的东西,所以我正在创建这个新问题,而不是删除某人的答案信用。这次我会尝试更具体地说明我的问题。
我有一个HTML页面,它使用自定义函数从PHP文件加载一些动态AJAX内容来调用jQuery.ajax
,例如:
$('#navigation a').click(function() {
var getPage = $(this).attr("class");
generatePage(getPage);
});
function generatePage(pageNum) {
$('#ajax-content').load(page.php + ' #someDiv-' + pageNum);
}
因此,在这种情况下,您单击主页上#navigation
中的任何链接,它会将与其类名匹配的内容(假设在这种情况下是"1",所以#someDiv-1
(从页面.php放入也位于主页上的#ajax-content
容器中。很好,很好。这部分有效。
当我尝试以相同的方式在检索到的 AJAX 内容中创建链接时,会出现此问题。因此,如果检索到的#someDiv-1
内容包含如下链接:
<a href="#" class="4">Page 4</a>
我怎样才能让它工作,以便在单击它时,它将#someDiv-4
的page.php
内容转储到主#ajax-content
容器中?我意识到容器甚至不存在在 AJAX 内容中,那么有没有另一种方法可以做到这一点?
寻找 AJAX 专业人士!你不必把答案交给我,但朝着正确的方向大力推动将不胜感激。感谢您的阅读。
我会创建一个jQuery事件处理程序来查找该类名并更改该元素上的URL。
我可能会通过这样做来简化它:
<a href="#" class="linkto _4">Page 4</a>
这样,您可以选择具有"linkto"类的所有元素,$(.linkto)
,并解析其他类名以构建事件处理程序的 URL。
jQuery的.on()
和.live()
将自动将事件处理程序连接到通过AJAX加载的内容。
或者,您可以使用 HTML5 data-
属性来保存 URL 信息而不是类名:
<a href="#" class="linkto" data-alt_url="_4">Page 4</a>
$('.linkto').data('alt_url')