Я пытаюсь создать переключатель, когда пользователь нажимает/нажимает значок, чтобы сдвинуть #wrapper налево 200px, а затем, а затем назад, как только его снова щелкнул/постучал. Это код, с которым я пытаюсь работать:
$('a.navToggle').click(function () {
$('#wrapper').toggle(function () {
$('this').animate({
right: '200px'
}, 900);
},
function () {
$('this').animate({
left: '200px'
}, 900);
});
});
Проблема, которую я получаю, - ползунки #wrapper полностью, а не только 200px
Это то, что вы хотите?
$('a.navToggle').click(function () {
if($("#wrapper").css("left") == "-200px")
{
$("#wrapper").animate({
left: '0'
}, 900);
}
else{
$("#wrapper").animate({
left: '-200px'
}, 900);
}
});
.toggle(function(){},function(){}
) устарел и удален в версии 1.9
Вы должны использовать большую версию, чем это.
и использование .toggle() означает скрыть и показать альтернативно.
Отобразить или скрыть согласованные элементы.
Именно поэтому ваш код скрывает элемент с wrapper
id и одним щелчком мыши снова показывает его.
Это это не 'this'
без кавычек.
var i = 0,
wrapper = $('#wrapper');
$('a.navToggle').click(function () {
if (i++ % 2 == 0) {
wrapper.removeAttr('style').animate({
right: '200px'
}, 900);
} else {
wrapper.removeAttr('style').animate({
left: '200px'
}, 900);
}
});