Проблема двоякая.
Во-первых, как отмечают несколько авторов, вам нужно поместить эти if
тесты в обработчик кликов.В настоящее время они выполняются за пределами области действия обработчика кликов, что, как я подозреваю, не в том случае, если вы хотите, чтобы они выполнялись.
Во-вторых, if ($(this).attr("class") == "disabled selected") {
даст вам только "истинное" значение, если строка классаэто 'disabled selected'
.Если строка класса 'selected disabled'
(или 'otherClass disabled selected'
или 'disabled selected draggable'
и т. Д.), То в результате сравнения вы получите значение false
.
Попробуйте:
$("li").click(function () {
var i = $(this); //Multiple variables used for better step-line debugging.
var hasDisabled = i.hasClass('disabled');
var hasSelected = i.hasClass('selected');
var disabled = false;
if (hasDisabled && hasSelected) {
disabled = true;
}
if (disabled) {
alert("disabled is true");
}
if (!disabled) {
alert("disabled is false");
}
});