2016-05-02 2 views
0

У меня возникла проблема с очень простой функцией jquery. Каким-то образом я не могу правильно определить «другое», чтобы отображался только щелчок, а остальное - нет.jquery не этот селектор для тегов не работает

Вот скрипку: https://jsfiddle.net/hansgohr/hnh5apkm/

Любые предложения было бы здорово! :)

Вот код, я использую:

$('#left a[href^="#"]').on('click', function(e){ 
    var target = this.hash 
    $target = $(target); 
    var others = $('#left a').not($(this)).attr('href') 

     console.log(others) 
    console.log(target) 

    $("#left").animate({ left: "50%" }, 800) 
    $("#right").animate({ right: "-50%" }, 800) 
    $(target).animate({left: 0 }, 800) 
    $(others).css("opacity", "0") 

    e.preventDefault(); 
}); 
+1

Во-первых, переместить preventDefault в верхней части кода, так как любая ошибка в коде будет пропустить preventDefault. Тогда используйте .not (this) – mplungjan

+0

Спасибо, я очень новичок в js в целом. Поэтому я обновил скрипку, и она почти работает, но как-то только между content1 и content2, третий не выбран внутри «других» https://jsfiddle.net/hansgohr/hnh5apkm/2/ – hans

+0

Хорошо, я определенно думал слишком много в неправильном направлении. Я просто устанавливаю непрозрачность от всего, кроме цели до «0». Теперь он работает отлично. :) – hans

ответ

0
$('#left a[href^="#"]').on('click', function(e){ 
    e.preventDefault(); 
    var target = this.hash 
    $target = $(target); 
    $('.outer-left').css({"opacity": "0", "left": "-50%"}) 
    $("#left").animate({ left: "50%" }, 800) 
    $("#right").animate({ right: "-50%" }, 800) 
    $(target).css("opacity", "1").animate({left: 0 }, 800) 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^