2015-01-08 3 views
0

В настоящее время у меня есть функция, которая автоматически перейдет к активному параметру в раскрывающемся списке всплывающих окон. Тем не менее, я не смог изменить свой код для работы с переменным числом выпадающих списков одновременно. Моя проблема заключается в создании нескольких функций или в том, что одна функция может это сделать.Создание динамического числа функций щелчка

 $(document).ready(function() { 
        var $dropdowns = $('fieldset').find("button.multiselect"); //Find all the dropdowns 
        console.log($dropdowns); //Show the ones that have been found 
        $.each($dropdowns, function (i) { //Just get the index of each 
         console.log(i); //Show index 
         myFunction(i); //Create n different .click functions (each with their own globals) 
        }); 

        function myFunction(index) { 
         var not_found = true; 
         var jump_to = 0; 
         var temp = -1; 
         //Recursively find scrolling value in pixels, then move. 
         //This works for a single dropdown. 
         $('button.multiselect:eq(index)').click(function() { 
          if (not_found == true) { 
           $('.multiselect:eq(index)').dropdown('toggle'); 
           temp = $('ul.multiselect-container:eq(index) li.active').position().top; 
           $('.multiselect:eq(index)').dropdown('toggle'); 
           if (temp > jump_to) { 
            jump_to = temp; 
            not_found = false; 
           } 
           else if (temp <= jump_to) { 
            $("button.multiselect:eq(index)").click(); 
           } 
          } 
          console.log($('ul.multiselect-container:eq(index) li.active').text()); 
          $('ul.multiselect-container:eq(index)').animate({scrollTop: jump_to}, 750); //Scroll to active element 
         }) 
        } 
       }); 

Я не уверен, если я должен использовать некоторые фокусы с addEventListener().

ответ

2

Одна вещь, что вам нужно сделать, это принять index из вашей строки и передать переменную вместо:

$('button.multiselect:eq('+index+')') 
... 
$('.multiselect:eq('+index+')').dropdown('toggle'); 
... 

для всех экземпляров index

+0

Ха-ха, я чувствую себя дураком. Это исправило это. Приветствия. –

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