очень простой propb., но не для меня. Смотрение на передачу переменная при щелчке функционирует для показа или отделения a или отделения b на основе нажатая ссылка. Мой код - что-то вроде этого
$('.view').click(function() {
var id = this.id.replace('view_', "");
if(id=1) { $('#show').show('slow'); }
if(id=2 ) { $('#show2').show('slow'); }
$('#categories').hide('slow');
return false;
});
});
Но ОЧЕВИДНО, если операторы являются неправильными - я знаю, что просто использую их в качестве примера. Какие-либо предложения? Спасибо в adavance
Попробуйте это ...
var id = parseInt(this.id.replace('view_', ""), 10);
if(id === 1) {
$('#show').show('slow');
} else if(id === 2 ) {
$('#show2').show('slow');
}
1 '=' используется для назначения
2 '==' сравнение с преобразованием типа
3 '===' является сравнение без преобразования типа
Как указывало
Как отметил, проблема в условном присваивании
Вы также должны рассмотреть возможность переименования ваших идентификаторов, чтобы напрямую соответствовать идентификаторам ваших представлений, чтобы вы могли сделать это без тестов, только по строке Согласие: «
$('.view').click(function() {
var id = this.id.replace('view_', "");
$('#show' + id).show('slow'); // doesn't have to use if statements
$('#categories').hide('slow');
return false;
});
Если идентификаторы ваших ссылок - view_1
и view_2
, то здесь все должно быть в порядке, за исключением того факта, что вы используете =
, а не сравнение ==
.
Если ваши элементы show
назывались show1
и show2
, а не show
и show2
, то вы, конечно же, могли бы сделать:
$('.view').click(function() {
$('#show' + this.id.replace('view_','')).show('slow');
$('#categories').hide('slow');
return false;
});
Вы назначаете значение 1
в ID
вместо тестирования на матч:
if(id = 1) {} // WRONG: this means if id is successfully SET to 1
Вот то, что он должен выглядеть:
$('.view').click(function() {
var id = this.id.replace('view_', "");
if(id == 1) { $('#show').show('slow'); }
else if(id == 2 ) { $('#show2').show('slow'); }
$('#categories').hide('slow');
return false;
});
Если вы обнаружите, что делаете эту ошибку, вы должны переключить тест вокруг:
if( 1 == id) {} // Works
if( 1 = id ) {} // Throws JS error instead of failing silently