所以,我正在使用jQuery创建自己的breadcrumbs菜单,因为我不想加载另一个膨胀的插件。我有这段代码:
function go_back(sec) {
$('.content').html('<p>Loading</p>').load('_library_q.php?','sec='+sec);
$(this).nextAll().remove();
}
单击链接即可调用。它加载内容区域并删除以下链接。这是每个链接格式的示例:
<span> > <a style="cursor:pointer" OnClick="go_back('4');">Foo</a></span>
加载有效,但以下链接不会删除。我相信这是因为它正在寻找一个<a>
,但它找不到一个。我需要引用父<span>
。我试过用
$(this).parent().nextAll().remove();
然而,这也不起作用。有什么帮助吗?
答案 0 :(得分:3)
作为快速解决方案,我建议:
function go_back(sec, elem) {
$('.content').html('<p>Loading</p>').load('_library_q.php?','sec='+sec);
$(elem).parent().nextAll().remove();
}
HTML:
<span> > <a style="cursor:pointer" OnClick="go_back('4', this);">Foo</a></span>
但是html中的javascript从长远来看是非常糟糕的,所以你应该完全摆脱它并设计整个事情而不依赖于html中的内联javascript。
答案 1 :(得分:0)
在调用全局函数时,不能调用$(this)。相反,你可以解决这个问题的一种方法是循环链接并使用JQuery的.click()函数 -
$('a').each(function() {
$(this).click(function() {
$('.content').html('<p>Loading</p>').load('_library_q.php?', 'sec=' + $(this).attr('id'));
$(this).parent().nextAll().remove();
});
});
我为每个链接添加了一个id属性,因此您可以使用load值的id值。您可以在此处查看示例:http://jsfiddle.net/dxAyT/