За последние 24 часа нас посетили 18630 программистов и 1687 роботов. Сейчас ищут 1593 программиста ...

Вопрос по переменным внутри функции

Тема в разделе "JavaScript и AJAX", создана пользователем Axios, 27 мар 2017.

  1. Axios

    Axios Активный пользователь

    С нами с:
    13 янв 2013
    Сообщения:
    52
    Симпатии:
    1
    Всем привет!

    Не пойму почему при клике передается последний аргумент высоты.

    ВЫЗОВ ФУНКЦИИ
    Код (Text):
    1. $(window).load(function() {
    2.     $(".pages_arh").pages_v(
    3.         {
    4.             view: 15,
    5.             height_box: 525
    6.         }
    7.     );
    8.     $(".news_list").pages_v(
    9.         {
    10.             view: 3,
    11.             height_box: "auto"
    12.         }
    13.     );
    14.     $(".expert_list").pages_v(
    15.         {
    16.             view: 1,
    17.             height_box: 545
    18.         }
    19.     );
    20. });
    Как видно height_box у всех разный и при инициализации функции работает все правильно, все кроме одного момента.

    на примере pages_arh

    Код (Text):
    1. (function( $ ){
    2.  
    3.     $.fn.pages_v = function(options) {
    4.         var settings = $.extend(options);
    5.         //Количество видимых элементов
    6.         $slider_count_view = settings.view;
    7.  
    8.         //Высота
    9.         $wrap_height = settings.height_box; //Значание как должно быть 525
    10.        
    11.         return this.each(function() {
    12.             var $this = $(this);
    13.  
    14.             ...ТУТ ДЛИННЫЙ КОДПРОПИСОВКИ КНОПОК ПЕРЕКЛЮЧГИЯ 1, 2, 3 и т.д
    15.  
    16.             //Работа пагинации
    17.             $this.parents(".pages_view_wrap").find(".pages_item").click(function(e){
    18.            
    19.             //ВОТ ТУТ УЖЕ ЗНАЧЕНИЕ $wrap_height НЕ РАВНО 525, А РАВНО 545, КАК ПРИ ПОСЛЕДНЕЙ ИНИЦИАЛИЗАЦИИ expert_list
    20.             //КАК ПОЛУЧИТЬ ТЕКУЩЕЕ ЗНАЧЕНИЕ?
    21.            
    22.                 $this_index = $(this).index();
    23.                 $(this).parents(".pages_view_wrap").find(".pages").animate({top: -($this_index * $wrap_height)}, 500);
    24.  
    25.             });
    26.         });
    27.  
    28.     };
    29. })( jQuery );
     
  2. Axios

    Axios Активный пользователь

    С нами с:
    13 янв 2013
    Сообщения:
    52
    Симпатии:
    1
    Вопрос решил дописыванием к элементу пагинации data-scroll и потом его считывать. Но все таки интересно почему так происходит