jQuery - If и еще If, если для marginLeft's

Мне было интересно, если вы могли бы помочь мне, я пытаюсь создать, если основанные взаимодействия на моем сайте, но, к сожалению, код не работает, и я не могу понять, почему. Идея состоит в том, чтобы нажать кнопку, чтобы переместить ее влево, а затем, когда другая кнопка нажимается в ее следующем заданном положении, она снова возвращается в нее.

if($("#featImgOne").css("marginLeft")=='0px'){
    $('#featNext').click(function(){
        $('#featImgOne').animate({marginLeft:"-960px"});
    });
    }
    else if($("#featImgOne").css("marginLeft")=='-960px'){
    $('#featPrev').click(function(){
        $('#featImgOne').animate({marginLeft:"0px"});
    });
    }

Просто обратите внимание, что первый щелчок работает, но второй не так, поэтому я озадачен

Заранее спасибо, надеюсь, кто-то может помочь

3 ответа

Решение

Вы должны переместить консоли if в обработчик кликов

$('#featNext').click(function () {
    if ($("#featImgOne").css("marginLeft") == 0) {
        $('#featImgOne').animate({
            marginLeft: "-960px"
        });
    }
});
$('#featPrev').click(function () {
    if ($("#featImgOne").css("marginLeft") != 0) {
        $('#featImgOne').animate({
            marginLeft: "0px"
        });
    }
});

Вы собираетесь добавить какой-то цикл. Попробуйте некоторое время Loop.**while**//add a condition

То, что вы ожидаете, не произойдет, потому что второй click событие никогда не добавляется, потому что в начале margin-left это не то значение. Исправьте это, удалив условные выражения:

$('#featNext').click(function () {
    if ($("#featImgOne").css("marginLeft") == 0) {
        $('#featImgOne').animate({
            marginLeft: "-960px"
        });
    }
});
$('#featPrev').click(function () {
    if ($("#featImgOne").css("marginLeft") != 0) {
        $('#featImgOne').animate({
            marginLeft: "0px"
        });
    }
});
Другие вопросы по тегам