0

我面临一个有趣的问题,一切都完美无缺。我对每一步都进行控制台记录,它会以应有的方式发挥作用。但!我在我的 .load(a-file.php) 中有一个#div。现在“a-file.php”也包含 HTML 标记,更具体地说,我想让某些链接“激活”加载。

设想; 页面加载发生,Javascript 加载文件并将其加载到 div 中。该 div 现在有选项卡,我希望第一个选项卡处于“活动”状态,这需要我 addClass('active');。但以下似乎没有效果

$('#content').load('file.php'); // works.
$('#content a[rel="weird-page"]').addClass('active'); // does not work.

任何形式的帮助,即使是远程确定它,都值得赞赏。

4

2 回答 2

1

改成:

$('#content').load('file.php', function() {
   $('#content a[rel="weird-page"]').addClass('active');
}); 
于 2013-02-28T09:47:13.933 回答
1

jQueryload()异步工作,因此您的addClass()方法在完成之前被调用load()

使用load()回调函数,它将确保您的内容已加载:

$('#content').load('file.php', function() {
   $(this).find('a[rel="weird-page"]').addClass('active');
});

无耻插件警告:我写了一篇关于 jQuery 回调函数的博客文章,您可能会发现它很有用。

于 2013-02-28T09:54:29.747 回答