Из документации на .toggle
(событие) :
Поскольку .toggle () внутренне использует обработчик щелчков для своей работы, мы должны отменить привязку щелчка, чтобы удалить поведение, связанное с .toggle (), чтобы другие обработчики щелчков могли попадать в перекрестный огонь. Реализация также вызывает .preventDefault () для события, поэтому ссылки не будут отслеживаться и кнопки не будут нажиматься, если для элемента был вызван .toggle ().
Похоже, это то, что с тобой происходит. Вы можете добавить функцию щелчка обратно с помощью нескольких строк jQuery:
$('a').click(function() {
location.href = $(this).attr('href');
});
(Это не будет работать в скрипке, но должно работать на вашем сайте.)
Однако мне не нравится, как .toggle
молча отменяет другие события щелчков, и это может вас удивить в будущем, поэтому я заменил бы ваш .toggle
на правильный .click
и использовал бы * 1020. *.slideToggle
вместо:
$("#treeMenu li").click(function() {
$(this).children('ul').slideToggle();
if ($(this).hasClass('contentContainer')) {
$(this).removeClass('contentContainer').addClass('contentViewing');
} else if ($(this).hasClass('contentViewing')) {
$(this).removeClass('contentViewing').addClass('contentContainer');
};
});
Вы также можете использовать .toggleClass
внутри обработчика кликов, чтобы сократить ваш код, но я не могу быть уверен, как вы хотите, чтобы классы добавлялись или удалялись на основе вашей скрипки.
http://jsfiddle.net/Kukd2/6/