Как уже отмечали другие, убедитесь, что ваша HTML-структура имеет смысл, т.е. поместите привязку ВНУТРИ в li <li><a href="">blah</a></li>
, а не <a href=""><li>blah</li></a>
<li>
- это структурированный список, выполнение вышеприведенного не имеет никакого структурного значения и не является правильным способом сделать что-либо.
Если ваша цель состоит в том, чтобы якорь полностью использовал элемент списка, тогда сделайте якорь блочным элементом в CSS: li a { display: block; }
В любом случае, вы можете попробовать использовать .delegate
в этой ситуации. Я реструктурировал ваш код, я предполагаю, что fetchpage
работает как ожидалось.
var $lastAnchor = jQuery();
$('#mainmenu').delegate('a', 'click', function() {
var $this = $(this);
$lastAnchor.removeClass('active');
fetchpage(this.id);
$('#largemenutop').html(
$this
.addClass('active')
.contents()
.filter(function() { return this.nodeType == 3; })
.text()
);
$lastAnchor = $this;
});
Убедитесь, что все внутри $(document).ready(function() { });