Что вы в основном делаете сейчас в первом предложении if, вы проверяете, является ли $('a.navlink:not(.active)')
истинным или ложным & ndash; $()
всегда возвращает объект, который оценивается как true. Вы должны также сделать hasClass
для этого. И вы удаляете «активный» класс до if
, так как вы можете сравнить его позже?
Неясно, что вы пытаетесь сделать, но то, что вы хотите, вероятно, что-то вроде этого:
$("a.navlink").click(function(ev) {
var url = $(this).attr("href")
ev.preventDefault();
// If the link is not active, run 'add':
if(!$(this).hasClass('active')) {
$.ajax ({
url: url,
type: "POST",
data: "method=add",
success: function (html) {
$('#accordion').accordion('destroy');
$("#accordion").append(html);
$('#accordion').accordion({
active: 0,
header:'h2.Blog'
});
}
});
// Mark it as active
$(this).addClass('active');
// If the link is active, run 'delete':
} else {
$.ajax ({
url: url,
type: "POST",
data: "method=delete",
success: function (html) {
alert("hello")
}
});
// Unmark it.
$(this).removeClass('active');
}
});
Цель этого кода не имеет для меня особого смысла, так что скажите мне, правильно ли я вас понял.